دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۴
  • شهریور

جلسه ۶۰ : برنامه ریزی رویدادهای WP Cron

  • دسته‌بندی‌ها :
جلسه ۶۰ : برنامه ریزی رویدادهای WP Cron
    • جزئیات
    • نوع محتواآموزشی

      مقدمه

      با عرض سلام و وقت به خیر خدمت کاربران سایت پی وی لرن به ویژه کاربرانی که به سیستم مدیریت محتوای قدرتمند وردپرس علاقمند هستند.
      به ” دوره متخصص وردپرس ” خوش آمدید!
      در این دوره قرار است توسعه و ارتقاء پلاگین های وردپرس را به صورت جامع و کامل بیاموزیم.
      فرقی نمی کند که در شرف نوشتن اولین پلاگین خود هستید و یا این که پنجاهمین پلاگین خود را می نویسید! امیدوارم این دوره برایتان مفید باشد.
      در جلسه قبلی شما را با زمان بندی WP-Cron آشنا کردیم و سعی نمودیم درک واضحی از ان به مخاطبان این دوره ارائه نماییم.
      در ادامه سرفصل Corn به مبحث برنامه ریزی رویدادهای WP Cron می پردازیم.

      برنامه ریزی رویدادهای WP Cron

      برنامه ریزی یک کار متوالی

      برای این که وظیفه جدیدی را اجرا کنید ابتدا باید یک هوک برای آن ساخته و سپس آن هوک را با یک تابع نامگذاری نمایید.
      این مرحله بسیار مهم است!
      در صورتی که این مرحله را فراموش کنید وظیفه تعیین شده شما هرگز عملی نخواهد شد.

      در ادامه یک هوک می سازیم.
      اولین پارامتر این هوک نام آن هوک است.
      دومین پارمتر نام تابع شما برای فراخوانی است.

      مثال : 

      اکنون به زمانبندی واقعی کار بروید.
      نکته مهم دیگر این است که WP-Cron سیستم ساده برنامه ریزی وظایف است.
      وظایف توسط وک ارائه شده برای کار هدایت می شوند ، اما اگر چندین بار با ()wp_schedule_event اقدام به فراخوانی کنید، (حتی با همان نام هوک)، این رویداد چندین بار برنامه ریزی می شود.
      اگر کد شما قادر است در هر بار اضافه شود پس این کار می تواند بارها و بارها نیز تکرار شود.
      البته این ایده ایده خوبی نیست.
      وردپرس تابع ()wp_next_scheduledرا ارائه می دهد که کار را خیلی ساده تر می کند.
      با استفاده از این تابع می توانید بررسی کنید آیا هوک خاصی از قبل برنامه ریزی شده است یا خیر.

      تابع wp_next_scheduled

      ()wp_next_scheduled از یک پارامتر به نام hook استفاده می نماید.
      علاوه بر این تابع یک رشته حاوی زمان اجرای بعدی یا false را بر می گرداند.
      و این نشانگر برنامه زمان بندی نشده است.
      از این تابع به این شکل می توان استفاده کرد:

      مثال : 

      برنامه ریزی یک کار مداوم و متوالی با تابع ()wp_schedule_event  صورت می گیرد.
      این تابع سه پارامتر مورد نیاز را در بر می گیرد و یک پارامتر اضافی که آرایه ای است که می تواند به تابعی که وظیفه wp-cron را انجام می دهد منتقل شود.
      ما بر روی سه پارامتر اول تمرکز خواهیم کرد. پارامترها به شرح زیر است:

      • timestamp$
        علامت زمانی UNIX برای اولین بار که این کار باید انجام میشود.
      • recurrence$
        نام فاصله ای که در آن کار در چند ثانیه تکرار می شود.
      • hook$
        نام هوک سفارشی ما برای فراخوانی

      ما از فاصله ۵ ثانیه ای و هوکی که قبلاً ایجاد کرده ایم استفاده خواهیم کرد:

      مثال : 

      به یاد داشته باشید ، ابتدا باید اطمینان حاصل کنیم که کار از قبل برنامه ریزی نشده است ، کد کامل آن به شرح زیر است:

      مثال : 

      برنامه ریزی رویدادهای WP Cron را با وظایف غیر برنامه ریزی شده در Corn می پردازیم.

      وظایف غیر برنامه ریزی شده

      هنگامی که دیگر نیازی به کار برنامه ریزی شده ندارید می توانید وظایف خود را با ()wp_unschedule_event انجام دهید.
      این تابع دو پارامتر زیر را در بر می گیرد:

      • timestamp – $Timestamp از وقوع بعدی کار
      • hook$ – نام هوک سفارشی که باید خوانده شود.
        این تابع نه تنها وظیفه مشخص شده توسط timestamp را تنظیم نمی کند ، بلکه تمام وقایع آینده کار را نیز مشخص می کند.
        از آنجا که احتمالاً زمان تعیین تکلیف بعدی را نمی دانید ، تابعی وجود دارد ، ()wp_next_schedule که آن را برای شما پیدا خواهد کرد.

      ()wp_next_scheduled یک پارامتر  را می گیرد:

      • hook$ – نام هوکی که برای اجرای کار گفته می شود.

      با کنار هم قرار دادن همه اینها کد ما به صورت زیر به نظر می رسد:

      مثال : 

      وقتی دیگر نیازی به آنها ندارید ، انجام کارهای غیرقابل تنظیم بسیار مهم اهمیت پیدا می کند.
      زیرا وردپرس همچنان به تلاش برای اجرای وظایف ادامه خواهد داد ، حتی اگر دیگر مورد استفاده قرار نگیرند.
      مکان مهمی که باید به خاطر داشته باشید تا وظایف خود را در حالت – غیر برنامه ریزی – قرار دهید، غیرفعال سازی افزونه است.
      متأسفانه پلاگین های زیادی در قسمت افزونه های WordPress.org وجود دارد که پس از پاک سازی همچنان وجود دارند.
      اگر چنین پلاگینی را یافتید حتماً سازنده آن را از مشکل افزونه ای که ساخته مطلع نمایید.
      با آگاه سازی سازنده پلاگین، وی می توانید کد افزونه خود را به روز رسانی نماید.
      وردپرس تابعی به نام Register_deactivation_hook () فراهم می کند که به توسعه دهندگان امکان می دهد هنگام غیرفعال کردن افزونه ، یک تابع را اجرا نمایند.
      تنظیم این تابع ساده است:

      مثال : 

      کلام آخر

      در این جلسه به آموزش برنامه ریزی رویدادهای WP Cron پرداختیم.
      در جلسه بعدی به آموزش هوک کردن WP-Cron به سیستم برنامه زمان بندی وظایف می پردازیم.
      با پی وی لرن همراه باشید.

      QR:  جلسه ۶۰ : برنامه ریزی رویدادهای WP Cron
      به اشتراک بگذارید