{"title":"Cron والمجدول","slug":"cron","category":"api","summary":"جدولة استدعاءات API المتكررة — مهام cron تعمل وفق جدول، مثالية للمزامنة الدورية والتذكيرات.","audience":["human","llm"],"tags":["api","cron","scheduler","automation"],"difficulty":"intermediate","updated":"2026-06-27","word_count":212,"read_minutes":1,"llm_context":"Auth: Mind Key\nCreate: POST /cron { schedule, endpoint, method?, body?, headers?, enabled? }\nList: GET /cron\nDelete: DELETE /cron/:id\nToggle: PUT /cron/:id/toggle\nSchedule: 5-field cron (minute hour day month day-of-week) OR integer interval (seconds)\nEndpoint: must be http(s) URL, same Synapse instance OR public HTTPS (no private IPs)\nPattern: schedule /memory/recall every hour, /chat/poll every 5 min, etc.\n","lang":"ar","translated":true,"requested_lang":"ar","content_markdown":"\n# Cron والمجدول\n\nتتيح لك Cron API جدولة استدعاءات HTTP متكررة لنقاط نهاية Synapse (أو\nنقاط نهاية HTTPS خارجية). مثالية للمزامنة الدورية والتذكيرات ومهام الصيانة.\n\n## نقاط النهاية\n\n### POST /cron\n\nإنشاء مهمة مجدولة.\n\n```bash\ncurl -X POST https://synapse.schaefer.zone/cron \\\n  -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"schedule\": \"0 * * * *\",\n    \"endpoint\": \"https://synapse.schaefer.zone/memory/recall\",\n    \"method\": \"GET\",\n    \"headers\": {\"Authorization\": \"Bearer YOUR_MIND_KEY\"}\n  }'\n```\n\nالاستجابة:\n\n```json\n{\n  \"id\": \"cron_001\",\n  \"schedule\": \"0 * * * *\",\n  \"endpoint\": \"https://synapse.schaefer.zone/memory/recall\",\n  \"method\": \"GET\",\n  \"enabled\": true,\n  \"next_run\": \"2026-06-27T13:00:00Z\",\n  \"created_at\": \"2026-06-27T...\"\n}\n```\n\n### GET /cron\n\nقائمة بجميع المهام المجدولة.\n\n```bash\ncurl -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     https://synapse.schaefer.zone/cron\n```\n\n### DELETE /cron/:id\n\nحذف مهمة مجدولة.\n\n```bash\ncurl -X DELETE -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     https://synapse.schaefer.zone/cron/cron_001\n```\n\n### PUT /cron/:id/toggle\n\nتمكين أو تعطيل مهمة دون حذفها.\n\n```bash\ncurl -X PUT -H \"Authorization: Bearer YOUR_MIND_KEY\" \\\n     https://synapse.schaefer.zone/cron/cron_001/toggle\n```\n\n## صيغة الجدولة\n\n### Cron القياسي (5 حقول)\n\n```\n┌───── minute (0-59)\n│ ┌───── hour (0-23)\n│ │ ┌───── day of month (1-31)\n│ │ │ ┌───── month (1-12)\n│ │ │ │ ┌───── day of week (0-6, 0=Sunday)\n│ │ │ │ │\n* * * * *\n```\n\nأمثلة:\n\n| الجدول | المعنى |\n|----------|---------|\n| `0 * * * *` | كل ساعة |\n| `*/15 * * * *` | كل 15 دقيقة |\n| `0 9 * * 1-5` | أيام الأسبوع الساعة 9 صباحًا |\n| `0 0 * * 0` | كل أحد منتصف الليل |\n| `0 0 1 * *` | أول كل شهر منتصف الليل |\n\n### فترة زمنية صحيحة (ثوانٍ)\n\nللفترات البسيطة، مرّر عددًا صحيحًا:\n\n```json\n{ \"schedule\": \"300\" }  // كل 5 دقائق\n```\n\n## قيود نقطة النهاية\n\n> [!WARNING]\n> يجب أن تكون نقاط النهاية عناوين URL تبدأ بـ `http://` أو `https://` تشير إلى:\n> - نفس نسخة Synapse (مثل `http://synapse:12800/memory/recall`)\n> - عناوين URL HTTPS عامة (لا عناوين IP خاصة، لا localhost، لا عناوين IP للبيانات الوصفية)\n\nهذا يمنع هجمات SSRF حيث يمكن لعقل مخترق جدولة طلبات إلى\nخدمات داخلية.\n\n## الأنماط الشائعة\n\n### استدعاء الذاكرة كل ساعة (لوكلاء LLM)\n\n```bash\ncurl -X POST .../cron -d '{\n  \"schedule\": \"0 * * * *\",\n  \"endpoint\": \"https://synapse.schaefer.zone/memory/recall\",\n  \"method\": \"GET\",\n  \"headers\": {\"Authorization\": \"Bearer YOUR_MIND_KEY\"}\n}'\n```\n\n### نسخ احتياطي يومي\n\n```bash\ncurl -X POST .../cron -d '{\n  \"schedule\": \"0 2 * * *\",\n  \"endpoint\": \"https://synapse.schaefer.zone/memory/mind-export\",\n  \"method\": \"GET\",\n  \"headers\": {\"Authorization\": \"Bearer YOUR_MIND_KEY\"}\n}'\n```\n\n### استطلاع الدردشة الدوري (كل 5 دقائق)\n\n```bash\ncurl -X POST .../cron -d '{\n  \"schedule\": \"300\",\n  \"endpoint\": \"https://synapse.schaefer.zone/chat/poll\",\n  \"method\": \"GET\",\n  \"headers\": {\"Authorization\": \"Bearer YOUR_MIND_KEY\"}\n}'\n```\n\n### مُحفّز التقرير الأسبوعي\n\n```bash\ncurl -X POST .../cron -d '{\n  \"schedule\": \"0 9 * * 1\",\n  \"endpoint\": \"https://my-app.com/weekly-report\",\n  \"method\": \"POST\",\n  \"body\": \"{\\\"mind_id\\\": \\\"m_xyz789\\\"}\",\n  \"headers\": {\"Content-Type\": \"application/json\", \"X-API-Key\": \"my-secret\"}\n}'\n```\n\n## الخطوات التالية\n\n- [Variables API](/docs/api/variables)\n- [Webhooks API](/docs/api/webhooks)\n","content_html":"<h1>Cron والمجدول</h1>\n<p>تتيح لك Cron API جدولة استدعاءات HTTP متكررة لنقاط نهاية Synapse (أو\nنقاط نهاية HTTPS خارجية). مثالية للمزامنة الدورية والتذكيرات ومهام الصيانة.</p>\n<h2>نقاط النهاية</h2>\n<h3>POST /cron</h3>\n<p>إنشاء مهمة مجدولة.</p>\n<pre><code class=\"hljs language-bash\">curl -X POST https://synapse.schaefer.zone/cron \\\n  -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n  -H <span class=\"hljs-string\">&quot;Content-Type: application/json&quot;</span> \\\n  -d <span class=\"hljs-string\">&#x27;{\n    &quot;schedule&quot;: &quot;0 * * * *&quot;,\n    &quot;endpoint&quot;: &quot;https://synapse.schaefer.zone/memory/recall&quot;,\n    &quot;method&quot;: &quot;GET&quot;,\n    &quot;headers&quot;: {&quot;Authorization&quot;: &quot;Bearer YOUR_MIND_KEY&quot;}\n  }&#x27;</span></code></pre><p>الاستجابة:</p>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-punctuation\">{</span>\n  <span class=\"hljs-attr\">&quot;id&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;cron_001&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;schedule&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;0 * * * *&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;endpoint&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/memory/recall&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;method&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;GET&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;enabled&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-literal\"><span class=\"hljs-keyword\">true</span></span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;next_run&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;2026-06-27T13:00:00Z&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;created_at&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;2026-06-27T...&quot;</span>\n<span class=\"hljs-punctuation\">}</span></code></pre><h3>GET /cron</h3>\n<p>قائمة بجميع المهام المجدولة.</p>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     https://synapse.schaefer.zone/cron</code></pre><h3>DELETE /cron/:id</h3>\n<p>حذف مهمة مجدولة.</p>\n<pre><code class=\"hljs language-bash\">curl -X DELETE -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     https://synapse.schaefer.zone/cron/cron_001</code></pre><h3>PUT /cron/:id/toggle</h3>\n<p>تمكين أو تعطيل مهمة دون حذفها.</p>\n<pre><code class=\"hljs language-bash\">curl -X PUT -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_MIND_KEY&quot;</span> \\\n     https://synapse.schaefer.zone/cron/cron_001/toggle</code></pre><h2>صيغة الجدولة</h2>\n<h3>Cron القياسي (5 حقول)</h3>\n<pre><code class=\"hljs language-plaintext\">┌───── minute (0-59)\n│ ┌───── hour (0-23)\n│ │ ┌───── day of month (1-31)\n│ │ │ ┌───── month (1-12)\n│ │ │ │ ┌───── day of week (0-6, 0=Sunday)\n│ │ │ │ │\n* * * * *</code></pre><p>أمثلة:</p>\n<table>\n<thead>\n<tr>\n<th>الجدول</th>\n<th>المعنى</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>0 * * * *</code></td>\n<td>كل ساعة</td>\n</tr>\n<tr>\n<td><code>*/15 * * * *</code></td>\n<td>كل 15 دقيقة</td>\n</tr>\n<tr>\n<td><code>0 9 * * 1-5</code></td>\n<td>أيام الأسبوع الساعة 9 صباحًا</td>\n</tr>\n<tr>\n<td><code>0 0 * * 0</code></td>\n<td>كل أحد منتصف الليل</td>\n</tr>\n<tr>\n<td><code>0 0 1 * *</code></td>\n<td>أول كل شهر منتصف الليل</td>\n</tr>\n</tbody></table>\n<h3>فترة زمنية صحيحة (ثوانٍ)</h3>\n<p>للفترات البسيطة، مرّر عددًا صحيحًا:</p>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-punctuation\">{</span> <span class=\"hljs-attr\">&quot;schedule&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;300&quot;</span> <span class=\"hljs-punctuation\">}</span>  <span class=\"hljs-comment\">// كل 5 دقائق</span></code></pre><h2>قيود نقطة النهاية</h2>\n<div class=\"callout callout-warn\">يجب أن تكون نقاط النهاية عناوين URL تبدأ بـ `http://` أو `https://` تشير إلى:</div><p>هذا يمنع هجمات SSRF حيث يمكن لعقل مخترق جدولة طلبات إلى\nخدمات داخلية.</p>\n<h2>الأنماط الشائعة</h2>\n<h3>استدعاء الذاكرة كل ساعة (لوكلاء LLM)</h3>\n<pre><code class=\"hljs language-bash\">curl -X POST .../cron -d <span class=\"hljs-string\">&#x27;{\n  &quot;schedule&quot;: &quot;0 * * * *&quot;,\n  &quot;endpoint&quot;: &quot;https://synapse.schaefer.zone/memory/recall&quot;,\n  &quot;method&quot;: &quot;GET&quot;,\n  &quot;headers&quot;: {&quot;Authorization&quot;: &quot;Bearer YOUR_MIND_KEY&quot;}\n}&#x27;</span></code></pre><h3>نسخ احتياطي يومي</h3>\n<pre><code class=\"hljs language-bash\">curl -X POST .../cron -d <span class=\"hljs-string\">&#x27;{\n  &quot;schedule&quot;: &quot;0 2 * * *&quot;,\n  &quot;endpoint&quot;: &quot;https://synapse.schaefer.zone/memory/mind-export&quot;,\n  &quot;method&quot;: &quot;GET&quot;,\n  &quot;headers&quot;: {&quot;Authorization&quot;: &quot;Bearer YOUR_MIND_KEY&quot;}\n}&#x27;</span></code></pre><h3>استطلاع الدردشة الدوري (كل 5 دقائق)</h3>\n<pre><code class=\"hljs language-bash\">curl -X POST .../cron -d <span class=\"hljs-string\">&#x27;{\n  &quot;schedule&quot;: &quot;300&quot;,\n  &quot;endpoint&quot;: &quot;https://synapse.schaefer.zone/chat/poll&quot;,\n  &quot;method&quot;: &quot;GET&quot;,\n  &quot;headers&quot;: {&quot;Authorization&quot;: &quot;Bearer YOUR_MIND_KEY&quot;}\n}&#x27;</span></code></pre><h3>مُحفّز التقرير الأسبوعي</h3>\n<pre><code class=\"hljs language-bash\">curl -X POST .../cron -d <span class=\"hljs-string\">&#x27;{\n  &quot;schedule&quot;: &quot;0 9 * * 1&quot;,\n  &quot;endpoint&quot;: &quot;https://my-app.com/weekly-report&quot;,\n  &quot;method&quot;: &quot;POST&quot;,\n  &quot;body&quot;: &quot;{\\&quot;mind_id\\&quot;: \\&quot;m_xyz789\\&quot;}&quot;,\n  &quot;headers&quot;: {&quot;Content-Type&quot;: &quot;application/json&quot;, &quot;X-API-Key&quot;: &quot;my-secret&quot;}\n}&#x27;</span></code></pre><h2>الخطوات التالية</h2>\n<ul>\n<li><a href=\"/docs/api/variables\">Variables API</a></li>\n<li><a href=\"/docs/api/webhooks\">Webhooks API</a></li>\n</ul>\n","urls":{"html":"/docs/api/cron","text":"/docs/api/cron?format=text","json":"/docs/api/cron?format=json","llm":"/docs/api/cron?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}