Веб-сайттар Cron көмегімен жоспарланған тапсырмаларды орындай алады

сағат

Бізде процестерді жүйелі түрде орындайтын бірнеше бақылау жүйелері бар. Кейбіреулер әр минут сайын жүгіреді, кейбіреулері не істеп жатқандарына байланысты түнде бір рет жүгіреді. Мысалы, біз купонды жіберу үшін 30 күн ішінде сатып алмаған барлық тұтынушыларды экспорттайтын сценарийді орындай аламыз.

Осының бәрін қолмен бақылап отырудың орнына, автоматты түрде жоспарланатын және орындалатын жұмыс орындарын құру әлдеқайда оңай. Unix негізіндегі жүйелерде бұл Cron көмегімен жүзеге асады. Сіз не істеп жатқаныңызды білетін адамдар үшін, егер мен жалған ақпарат тарататын болсам, мені және оқырмандарды оқытыңыз.

Бұл өкінішті, бірақ әдеттегі веб -әзірлеуші ​​Cron -мен мүлде таныс емес. Тіпті егер олар болса да, веб -хостинг компаниялары көбінесе Cron -ға кіруді немесе қолдауды қамтамасыз етпейді. Менің хостым - соңғылардың бірі - олар оны пайдалануға мүмкіндік береді, бірақ олар оны қолдамайды.

Крон дегеніміз не?

Cron мағынасы гректің Chronos сөзімен аталған уақыт. Cron Crontab жинақтайтын тапсырмаларды орындау үшін үздіксіз циклде жұмыс істейді (мүмкін сол үшін аталған қойындысыультратор. Бұл тапсырмалар әдетте Cronjobs деп аталады және сіздің сайтыңыздағы сценарийлерге сілтеме жасай алады.

Cron диаграммасын түсіндіру

Crontab-ты қалай орнатуға болады

Cron -ды іске қосу қиын болуы мүмкін, сондықтан мен білдім және оны қалай жасадым Егер соратын болса:

  1. Мен Twitter -ді тексеру үшін сценарийді қойдым API біреудің жауап бергендігін көру үшін @ifsuck. Мен бұл хабарларды сайтта сақтаған, кез келген жаңасын енгізген хабарламалармен салыстырдым.
  2. Сценарий жұмыс істеп болғаннан кейін, мен қолданушыға сценарийді орындауға рұқсат бердім (744) және скрипт сілтемесін Cronjob файлыма қостым - бұл туралы толығырақ.
  3. Содан кейін SSH арқылы веб-сайтыңа кіруім керек болды. Терминалды ашып, теруді қажет ететін Mac жүйесінде SSH username@domain.com мұнда пайдаланушы аты мен пайдаланғым келген пайдаланушы аты және домен веб-сайт болды. Содан кейін мені сұрады және құпия сөзді берді.
  4. Содан кейін мен файл атауын және салыстырмалы жолды серверге теру арқылы командалық жолдан сценарийді тікелей іске қосуға тырыстым: /var/www/html/myscript.php
  5. Дұрыс жұмыс істегеннен кейін, файлдың бірінші жолына қажетті Unix кодын қостым: #! / usr / bin / php -q . Менің ойымша, бұл Unix-ке PHP-ді сценарийді орындау үшін қолдануға кеңес береді.
  6. Терминалдың командалық жолында мен тердім Crontab (басқаларына теру керек болуы мүмкін crontab -e) және enter пернесін басыңыз ... және сізге бұл қажет болды!

Cronjob файлыңызға арналған синтаксис

Жоғарыдағы №2 -ге қатысты, Cron сіздің сценарийлеріңіздің қашан орындалатынын анықтаудың керемет схемасын қолданады. Шындығында, сіз оны Cronfile -ге көшіріп, қоюға болады (менің хостымда ол орналасқан / var / spool / cron / файл атауымен менің пайдаланушы атыммен бірдей).

# + —————- минут (0 - 59)
# | + ————- сағат (0 - 23)
# | | + ———- ай күні (1 - 31)
# | | | + ——- ай (1 - 12)
# | | | | + —- аптаның күні (0 - 6) (жексенбі = 0 немесе 7)
# | | | | |
* * * * * /var/www/html/myscript.php

Жоғарыдағылар менің сценарийімді минут сайын орындайды. Егер мен оның сағатына бір рет жұмыс жасайтынын қаласам, мен сағаттан кейін қанша минут өткенін қалайтын едім, егер ол 30 минуттық белгіде болса:

30 * * * * /var/www/html/myscript.php

Бұл файлға рұқсаттарды орындалатын ретінде орнатқаныңызға көз жеткізіңіз! Терминал терезесінен синтаксис, рұқсаттар және crontab орындалуы ең маңызды факторлар екенін білдім. Мен файлды қайта сақтаған сайын, менің рұқсаттарымды да қалпына келтіру қажет деп таптым!

ЖАҢАРТУ: Егер сіз тапсырмалардың орындалуын қамтамасыз еткіңіз келсе, сценарий соңғы рет қосылған кезде дерекқор өрісін жаңарту қажет. Егер бұл сирек болса, сіз өзіңізге жіберілген электрондық поштаны сценарийлей аласыз.

Қосымша Cron Ресурстары:

Cron көмегімен қанша жұмысты автоматтандыруға болады?

8 Пікірлер

  1. 1

    Кронды құру туралы мақалада жақсы айтылған, жұмыс үшін жаңадан келген адам үшін кронды орнатудың ең қиын бөлігі - кронжобтың орындалу аралығын анықтау, ал бірінші кезекте дұрыс емес интервал алу өте ұтымды. Егер сіздің cronjobs уақытыңызды сезінетін болса, жұмыстың орындалу мәртебесі туралы хабардар болып отыру үшін мәртебені қайталау үшін сценарийге бірнеше кодтарды қосқан дұрыс.

  2. 2

    Сәлем Даг,

    Cron жұмысымен жұмыс кезінде ескеру керек бірнеше нәрсе.

    Біріншіден, бірнеше ондаған уақыттан кейін сізде интерфейс, мәліметтер базасы және ағылшын тіліндегі синтаксис болғанын қалайсыз 😉

    Екіншіден, cron жұмысты алдыңғы шақыру аяқталғанына қарамастан, белгіленген уақытта жұмыстан шығарады. Сонымен, минутына бір рет жұмыс жасау, 2 минутты алады, бұл тез арада көптеген жұмыс орындарына әкеледі.

    Әрі қарай, бірдеңе дұрыс болмаса, қате туралы хабарлауға болмайды, сондықтан сіз өзіңіздің қателік туралы есептеріңізді қосуыңыз керек.

    Мен бұларға бірнеше жолмен жүгіндім:
    - cron арқылы іске қосылатын бағдарламаны не іске қосу керектігін анықтау үшін дерекқордан іздеңіз. Оны қалағаныңызға қарай минутына немесе сағатына бір рет іске қосыңыз
    - әрбір сценарийде / tmp файлында «бұғаттау» файлы жасалсын, егер ол бар болса, қайта бастамаңыз, бұл сізге қайталанатын жұмыстардың алдын алады
    - егер сценарий 1 сағаттан асатын құлыптау файлын тапса (немесе сіз қайтыс болдыңыз десе) электрондық пошта арқылы ескерту жіберіңіз
    - жұмыстың сәтсіздігі туралы сценарийден электрондық пошта жіберіп, бірдеңе дұрыс болмай қалғанын біліңіз
    - сіздің қажеттіліктеріңіз бірнеше сценарийден асып кетсе, Flux немесе коммерциялық жоспарлаушылар сияқты құрылымдарды қарау

    Крис

  3. 4

    Сонымен қатар, Linux / Unix жүйелерінің көпшілігінде crontab -e - сіздің crontab-ті өңдеу үшін қолданылатын нәрсені қосамын. Менің ойымша, сіздің хостыңыз (Jumpline) қауіпсіздік мақсатында өзгертілген нұсқаны қолданады.

  4. 5

    Кроннимен танысқан бірінші күн әлі есімде. Мен ол туралы сенімді, әрдайым уақытында болатын, бірақ кейде оның ниеті туралы біраз шатастыратын нәрселер туралы естідім.

    Мен бұл шындық деп таптым, өйткені ол алғашында мен үшін толық құпия болды. Ол туралы сұрағаннан кейін, мен оның қалай жұмыс жасауды ұнататынын тез білдім. Енді, менің өмірімде онсыз бір күн өтіп жатқанын елестете алмаймын. Ол дүниені қызықты етеді және көптеген ауыртпалықтарды менің иығымнан босатады.

    Мен байыпты түрде өзімді тек cron жұмысымен автоматтандыратын нәрсемен тырнаған сияқтымын. Олар шынымен де дамытушылардың ең жақын досы. Егер сіз өзіңіздің серверіңізді басқару үшін CPanel сияқты біреуді қолдансаңыз, бұл крондар жасау үшін әлдеқайда мейірімді интерфейсті ұсынады. Сізге арналған cron сызығын құрастыратын минут, сағат, күн, ай және т.б ашылмалы мәзірлермен толықтырыңыз.

  5. 7

    Мен мұны кез-келген маркетолог қолдануы керек деп білемін ... Бұл қызметті тым «техникалық» болып көрінетіндіктен ұсына алатын адам бар ма?

Сен не ойлайсың?

Бұл сайт спамның төмендеуі үшін Akismet пайдаланады. Деректеріңіздің қалай өңделетінін біліңіз.