# اجراها

> وضعیت‌های اجرا، کارهایی که می‌توانید روی یک اجرا انجام دهید و اینکه اجرا چگونه متوقف می‌شود.

اجرا یک بهینه‌سازی است. هر اجرا یک وضعیت، یک سقف هزینه و مجموعه‌ای از نسخه‌های ذخیره‌شده دارد. این صفحه وضعیت‌های اجرا، کارهایی که می‌توانید روی یک اجرا انجام دهید و دلایل توقف اجرا را توضیح می‌دهد.

## وضعیت‌های اجرا

هر اجرا یکی از این وضعیت‌ها را دارد:

| وضعیت        | معنی                                                                        |
| ------------ | --------------------------------------------------------------------------- |
| `pending`    | اجرا در صف است.                                                             |
| `validating` | Skynet پیش از شروع بهینه‌سازی، تنظیمات را بررسی می‌کند.                      |
| `running`    | بهینه‌ساز نسخه‌های جدید را پیشنهاد می‌دهد و به آن‌ها امتیاز می‌دهد.           |
| `success`    | اجرا تمام شد. بهترین نسخه ذخیره شد.                                          |
| `failed`     | یک خطا اجرا را متوقف کرد.                                                    |
| `cancelled`  | یک نفر اجرا را لغو کرد.                                                      |
| `paused`     | اجرا در یک نقطهٔ بازیابی (checkpoint) متوقف شد. می‌توانید آن را از سر بگیرید. |
| `stopped`    | اجرا با رسیدن به بودجه‌اش متوقف شد. بهترین نسخه‌ای را که پیدا کرد نگه می‌دارد. |

`success`، `failed`، `cancelled`، `stopped` و `paused` وضعیت‌های پایانی هستند. بهینه‌ساز روی اجرایی که در وضعیت پایانی است کار نمی‌کند. `paused` تنها وضعیت پایانی است که برای ازسرگیری وجود دارد.

## کارها

صفحهٔ اجرا کارهایی را نشان می‌دهد که با وضعیت فعلی و نقش شما سازگار هستند. API هم همین کارها را دارد.

| کار           | چه زمانی می‌توانید از آن استفاده کنید                                                                                     | چه کاری انجام می‌دهد                                                       |
| ------------- | ------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------- |
| **توقف**      | اجرا در حال اجرا است و یک نقطهٔ بازیابی ذخیره‌شده دارد.                                                                     | اجرا را در نقطهٔ بازیابی متوقف می‌کند. وضعیت به `paused` تغییر می‌کند.       |
| **لغو**       | اجرا در وضعیت `pending`، `validating` یا `running` است.                                                                  | اجرا را متوقف می‌کند. لغو را نمی‌توانید برگردانید.                           |
| **ازسرگیری**  | اجرا در وضعیت `failed`، `cancelled`، `paused` یا `stopped` (به‌دلیل بودجه) است و یک نقطهٔ بازیابی ذخیره‌شده دارد.             | همان اجرا را از آخرین نقطهٔ بازیابی ادامه می‌دهد. شناسهٔ اجرا تغییر نمی‌کند. |
| **کلون**      | هر زمان که بتوانید اجرا را ببینید.                                                                                        | ویزارد ارسال را با یک کپی از پیکربندی باز می‌کند.                           |
| **حذف**       | اجرا در وضعیت پایانی است. فقط مالک.                                                                                       | اجرا و همهٔ داده‌هایش را برای همیشه حذف می‌کند.                             |

API برای اجرایی که در وضعیت `failed` یا `cancelled` است، دو کار دیگر هم دارد:

- **تلاش دوباره** یک اجرای جدید با همان پیکربندی شروع می‌کند. اجرای جدید یک شناسهٔ جدید می‌گیرد.
- **شروع دوباره** همان اجرا را از ابتدا دوباره شروع می‌کند. شناسهٔ اجرا تغییر نمی‌کند.

> [!NOTE]
> تلاش دوباره، شروع دوباره و کلون از طریق API، اجرایی را که سقف هزینهٔ مخصوص خودش را دارد نمی‌پذیرند. پیکربندی را در ویزارد ارسال باز کنید و پیش از شروع اجرای جدید، بودجهٔ جدیدی تنظیم کنید. دکمهٔ **کلون** در صفحهٔ اجرا این کار را برای شما انجام می‌دهد.

کلون از طریق API می‌تواند در یک درخواست 1 تا 5 کپی بسازد. هر کپی از محدودیت‌های اجرای شما کم می‌کند. صفحهٔ [محدودیت‌ها](/docs/fa/limits) را ببینید.

### چه کسی می‌تواند یک کار را انجام دهد

نقش شما در اجرا تعیین می‌کند چه کارهایی را می‌بینید:

- **مالک** می‌تواند همهٔ کارها را انجام دهد، اشتراک‌گذاری را مدیریت کند و اجرا را حذف کند.
- **ویرایشگر** می‌تواند اجرا را متوقف، لغو، ازسرگیری و دوباره تلاش کند و سقف هزینهٔ آن را بالا ببرد.
- **بیننده** می‌تواند اجرا را باز کند و آن را کلون کند.

برای اطلاعات بیشتر دربارهٔ نقش‌ها، صفحهٔ [اشتراک‌گذاری و انتشار](/docs/fa/guides/sharing) را بخوانید.

## اجرا چگونه متوقف می‌شود

اجرا به یکی از چهار دلیل متوقف می‌شود.

### تکمیل

بهینه‌ساز کارش را تمام می‌کند. وضعیت به `success` تغییر می‌کند. Skynet بهترین نسخه را ذخیره می‌کند و آزمون نهایی را اجرا می‌کند. صفحهٔ [خواندن نتایج](/docs/fa/guides/results) را بخوانید.

### بودجه

اجرا پیش از شروع هیچ برآورد هزینه‌ای ندارد. سقف هزینهٔ آن، بودجه‌ای است که می‌تواند مصرف کند. Skynet در طول اجرا هزینهٔ واقعی هر اجرای امتیازدهنده را اندازه می‌گیرد:

1. Skynet منتظر 10 اجرای امتیازدهندهٔ تسویه‌شده می‌ماند. پیش از آن، هزینهٔ یک فراخوانی پرنوسان‌تر از آن است که قابل استفاده باشد.
2. Skynet از میانگین هزینه تا آن لحظه برای قیمت‌گذاری تکرار بعدی استفاده می‌کند. این قیمت را در 1.5 ضرب می‌کند، چون تکرارهای بعدی معمولاً هزینهٔ بیشتری دارند.
3. وقتی بودجهٔ باقی‌مانده نتواند هزینهٔ تکرار بعدی را بپردازد، Skynet کار جدیدی نمی‌پذیرد. بهینه‌ساز در فراخوانی پولی بعدی‌اش متوقف می‌شود.

سپس اجرا وضعیت `stopped` و دلیل توقف `budget_reached` را دارد. صفحهٔ اجرا اعلان **سقف بودجه رسید** را نشان می‌دهد. این اعلان می‌گوید Skynet کدام نسخه را ذخیره کرد:

- بهترین نسخهٔ ارزیابی‌شدهٔ شما.
- نسخهٔ شروع ارزیابی‌شدهٔ شما، اگر نسخهٔ بهتری پیدا نشد.
- هیچ نسخه‌ای، اگر بودجه پیش از تمام شدن ارزیابی هر نامزدی تمام شد. ورودی‌ها و لاگ‌های شما ذخیره‌شده باقی می‌مانند.

برای ادامه، از **افزایش سقف و ادامه** در اعلان استفاده کنید. Skynet اجرا را از آخرین نقطهٔ بازیابی از سر می‌گیرد.

> [!TIP]
> اجرایی با **بدون سقف** تا زمان پایان از موجودی حساب شما برداشت می‌کند. اگر موجودی تمام شود، اجرا متوقف می‌شود و آنچه را دارد نگه می‌دارد. در این حالت اعلان **موجودی حساب تمام شد** را نشان می‌دهد. موجودی اضافه کنید، سپس اجرا را از سر بگیرید.

برخی اجراهای قدیمی‌تر با دلیل توقف `budget_projected` متوقف شدند. می‌توانید آن‌ها را به همین روش از سر بگیرید.

### خطا

یک خطا اجرا را متوقف می‌کند. وضعیت به `failed` تغییر می‌کند. زبانهٔ **لاگ‌ها** نشان می‌دهد چه اتفاقی افتاد. اگر اجرا یک نقطهٔ بازیابی ذخیره‌شده داشته باشد، می‌توانید آن را از سر بگیرید. همچنین می‌توانید آن را دوباره تلاش کنید.

اگر یک worker هنگام اجرای کار شما متوقف شود، Skynet کار را بازیابی می‌کند و دوباره تلاش می‌کند. پس از 3 تلاش، Skynet کار را ناموفق علامت می‌زند. ازسرگیری پس از خطا یا لغو هم یک تلاش حساب می‌شود. ازسرگیری پس از توقف دستی یا توقف به‌دلیل بودجه حساب نمی‌شود.

### لغو

شما اجرا را لغو می‌کنید. وضعیت به `cancelled` تغییر می‌کند. لغو را نمی‌توانید برگردانید. بعداً می‌توانید اجرا را از یک نقطهٔ بازیابی ذخیره‌شده از سر بگیرید، یا آن را دوباره تلاش کنید.

## صفحه‌های مرتبط

- [بودجه‌ها و صورت‌حساب](/docs/fa/concepts/billing)
- [شروع یک اجرا با ویزارد](/docs/fa/guides/submit)
- [محدودیت‌ها](/docs/fa/limits)

---

Source: https://staging.skynetml.com/docs/fa/concepts/runs
