سؤال

أنا جديد تمامًا في موضوع وظائف cron، لذا ليس لدي أي فكرة من أين أبدأ في التعرف عليها؛متى، ولماذا، أو كيفية استخدامها مع تطبيق Zend Framework الخاص بي، أو PHP بشكل عام.

هل يمكن لأي شخص أن يشرح العملية، بمثال، أو يوصي ببعض الموارد الجيدة للبدء؟

هل كانت مفيدة؟

المحلول

وظائف كرون هي آلية لأتمتة المهام في نظام التشغيل لينكس. ويملك الا القليل جدا أن تفعل يتن الإطار زند. يمكن للإطار تساعدك على تطوير مهمة كرون المتقدمة في بي بالرغم من ذلك. ولكن بعد ذلك سيكون لديك لإنشاء وظيفة كرون بك في وعاء.

وغوغلينغ عن "كيفية إعداد مهمة كرون" وكشف هذا الرابط في الجزء العلوي:

http://www.adminschoice.com/docs/crontab.htm

وأنا متأكد من أن هذه المادة سوف تساعدك.

وP.S.

وكما أمر لتنفيذ يجب عليك ان تضع شيئا مثل:

و/usr/local/bin/php -f <path_to_your_php_script>

وحيث المسار الأول هو المسار الكامل إلى حسابك تنفيذ فب المبادرة القطرية، والتي قد تختلف على الجهاز الخاص بك. يمكنك التأكد من خلال إصدار هذا الأمر:

وwhich php

وحظا سعيدا مع كرون الوظائف.)

نصائح أخرى

نظرًا لأن Zend Framework عبارة عن مجموعة من المكونات غير المقترنة بطريقة ما، يمكنك استخدام المكونات التي تريدها في كل برنامج PHP نصي بما في ذلك نصوص CLI النصية.سيتعين عليك التأكد من أن PHP يمكنها العثور على فئات Zend Framework ذات الصلة لذا يتعين عليك إضافة مسار مكتبة Zend Framework إلى جهازك include_path.ثم يمكنك إعداد التحميل التلقائي باستخدام Zend_Loader_Autoloader (ZF >= 1.8) أو Zend_Loader (ZF <1.8) لتسهيل الحياة.الآن، يجب أن يكون لديك حق الوصول إلى جميع مكونات Zend Framework التي يمكنك استخدامها حسب رغبتك.

مثل أي برنامج نصي أو برنامج آخر، يمكن استخدام برنامج PHP النصي هذا في مهمة cron بشكل طبيعي.شيء آخر يجب ملاحظته هو أنه سيتعين عليك التأكد من أن المستخدم الذي يقوم بتشغيل وظائف cron الخاصة بك لديه حق الوصول للقراءة إلى مسار مكتبة Zend Framework وإلا فلن يتمكن PHP من قراءة ملفات Zend Framework.

إذا كان سؤالك يستهدف استخدام مكون MVC في البرامج النصية لـ CLI، فيجب أن أعترف بأنه ليس لدي أي خبرة في هذا الشأن.أفترض أنه يجب بذل جهد لا يستهان به لتنفيذ فئات الطلب والاستجابة والإرسال والمسار المناسبة.

يحرر:

لطفا أنظر هذا المقال للمزيد من المعلومات.

ربما مثال واقعي من شأنه أن يساعد.منذ بضع سنوات، عملت على مشروع تقويم الأحداث باستخدام Zend Framework.في هذا التقويم، يمكن للمستخدم إنشاء حدث وإرفاق تاريخ واحد أو أكثر بالحدث.وبطبيعة الحال، قمت بتنفيذ هذا كربط متعدد إلى واحد في قاعدة البيانات الخاصة بي، ولكن هذا يعني أنه من أجل إرفاق تاريخ، يجب أن يكون الحدث موجودًا أولاً.ومع ذلك أردت السماح للمستخدمين بإضافة التواريخ بينما لقد كانوا هم الذين يصنعون الحدث، وليس بعد لقد خلقوا حدثًا.بمعنى آخر، أردت أن يقوم المستخدم بتحرير جميع جوانب الحدث في نفس الوقت، وأن يرسل فقط عندما ينقر على "حفظ".

لقد قمت بحل المشكلة عن طريق إدراج سجل حدث فارغ جديد في قاعدة البيانات عندما يبدأ المستخدم في إنشاء سجل حدث.يتم ملء هذا السجل الفارغ وحفظه عندما ينقر المستخدم على "حفظ"، أو يتم حذفه عندما ينقر المستخدم على "إلغاء".حدثت المشكلة عندما انتقل المستخدمون بعيدًا دون النقر فوق "إلغاء"، وتم ترك سجل الحدث الفارغ في قاعدة البيانات.في النهاية، ستمتلئ قاعدة البيانات بهذه الأحداث الفارغة التي لا معنى لها، وقد تصبح الأمور قبيحة.

لقد كتبت وظيفة تسمى "الصيانة ()" والتي، من بين أمور أخرى، حذفت جميع السجلات غير المحفوظة الأقدم من 24 ساعة.لقد قمت بإعداد مهمة cron يتم تشغيلها ليلاً ونفذت برنامج نصي php لسطر الأوامر يقوم بتشغيل الصيانة ().

الأشياء الأخرى التي قد تستخدم وظيفة cron من أجلها:

  • إرسال مجموعة من رسائل البريد الإلكتروني للمستخدمين الجدد.(كل 5 دقائق؟)
  • تحديث إحصائيات المستخدم (كل ساعة؟)
  • تنفيذ عمليات كثيفة الاستخدام للموارد عندما لا تكون الخوادم مزدحمة بحركة المرور (كل ليلة عند منتصف الليل، أو مرة واحدة في الأسبوع في ليالي الأحد؟)
  • أي حدث آخر لا يحدث استجابةً لطلب المستخدم (ما يسميه جيف "خارج النطاق").

ويمكن أيضا أن تكون ينترستيد في <لأ href = "https://stackoverflow.com/questions/505552/how-do-you-store-your-scripts-for-cron-jobs-in-zend-framework" > كيفية تخزين كرون الوظائف مع ZF

وهنا وصلة الى وسيلة جيدة للقيام implentation الخاص بك من نظام كرون مع زند الإطار:

مهام كرون في إطار زند التطبيقات

وPersonnaly، لقد تكييفها بحيث المعلمة يمكن أن تكون دينامية، ولكن القاعدة هو نفسه: -)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top