Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using cron manager from within PHP

Tags:

php

cron

I am wanting to add a section in my php application to add / remove scheduled tasks.

Something similar to what they use in vBulletin Forum.

Does anyone have any ideas what they use? Are they using cron jobs or do they have something custom done.

Can anyone guide me on how I can accomplish something similar to that, basically I just want my script to add or remove cron jobs / scheduled task.

I don't want to use, for example the cPanel Cron interface, I would like to accomplish this from within my script.

Any help is greatly appreciated.

like image 901
Zubair1 Avatar asked Nov 29 '22 05:11

Zubair1


2 Answers

If you don't have the exec() function enabled, you have to rely on manually setting at least one cron job via some interface and then managing individual jobs in your script.

What I do for example is this

  1. I have a script heartbeat.php which is executed every minute
  2. This script checks a MySQL table crontab and checks if there is any row (job) with time_to_process <= NOW()
  3. If there is, it loads the class defined for the specific row from crontab table
  4. The class implements an interface with run() method and I only call $cronJob->run() to make it run
  5. The class then handles it's rescheduling via crontab table once it finishes

A good example is to reset daily views on some items. The job is scheduled at May 1, 2010 00:00. Once the job ran, it schedules itself for the next day automatically.
You can then implement automatic reset of failed jobs and many other features from within PHP.

like image 91
mike Avatar answered Dec 10 '22 22:12

mike


http://ryanfaerman.com/php-crontab-manager/

is a php class that lets you access a crontab from PHP using a class.

like image 43
CodeJoust Avatar answered Dec 10 '22 22:12

CodeJoust