Before purchasing and installing, please check that you can run each installed job successfully from the dashboard. If a job will not run from the dashboard, this addon will not solve your problem.
If you don’t want to run various jobs at different schedules, have a look at Nontab Scheduler. Its free!
FlexJob Scheduler provides all its easy to use facilities for concrete5.5 or above.
For concrete4.x versions, a reduced dashboard interface is provided where the site admin can enter cron strings that FlexJob Scheduler will then process and trigger jobs. In concrete5.5 and above, you get an easy to use dialog driven interface.
This addon is incompatible with Nontab Scheduler. If you have Nontab Scheduler installed, please uninstall it first.
FlexJob Scheduler provides a dashboard interface at System & Settings > Optimization > FlexJob Scheduler.
When first installed, all your jobs will be listed with no schedule settings. To schedule a job, click on the edit icon and a dialog will pop up.
Use the tabs and checkboxes to select when you want the job to run by ticking for time of day in hours/minutes, weekdays and day/month. Leave any of these set as "Any" if you don’t care.
Unlike pure cron, FlexJob scheduler treats an entry of "Any" for all schedule settings to mean that a job will never be run.
Be careful about selecting a weekday and a day of month at the same time. The relationship between each setting is "and", so such a job will only be run when that weekday occurs on that day of the month!
To check the schedule is what you want, go to the "Preview run times" tab to see a list of calculated run times.
The "Notes" tab keeps notes just within FlexJob Scheduler, so you can make notes of why you have configured each shedule.
Remember to preview run times to check that a job schedule is correct before clicking "Save" when finished.
Repeat the above for each job. Where schedules could collide, you can adjust the priority by dragging jobs up and down the list.
With all your jobs entered, go to the "Configuration" tab and make sure FlexJob Scheduler is enabled.
Finally, remember to "Save" the entire dialog to make sure the individual job schedules you have entered are saved.
That’s it. Your jobs are now scheduled. For the next few days, keep an eye on the Jobs Log to confirm that everything is running as it should.
At any time in the future, you can re-visit the FlexJob Scheduler dashboard page to preview the next scheduled run time of all jobs, or to edit the schedules and save again.
FlexJob Scheduler also provides a dashboard page to view, search and manage the Jobs Log. This is a log that is already kept by concrete5 that FlexJob Scheduler now provides a dashboard interface to.
The technique generally referred to as "poor man's cron" piggybacks the triggering of jobs to visitors viewing pages. Once triggered, the actual jobs are then run in the background, so have no impact on the user's experience of a site.
Run times are approximate. FlexJob Scheduler works by piggy-backing its trigger processing onto page requests, so jobs are only run if pages are requested. The scheduled run times are therefore only approximate. If no pages are visited until 2 hours after a scheduled run time has elapsed, then the job will be delayed until then and the next run time calculated from when the job was run.
The busier a site is, the more accurately FlexJob Scheduler will run a job to its schedule.
FlexJob Scheduler should therefore only be used to run jobs that are not time critical.
Because jobs are triggered by page requests, there is a small possibility that a job can be double-triggered by concurrent page requests. FlexJob Scheduler includes checks to prevent double triggering and further checks to prevent double execution. However, there remains a tiny but finite possibility of a job being double executed. This must be borne in mind by developers when designing jobs.
Within FlexJob Scheduler time is available in 5-minute intervals. If you need to run jobs with more precision, then you really need a proper cron service. FlexJob Scheduler does not provide precise enough control of time for such a critical schedule.
Globally enable/disable FlexJob Scheduler.
All jobs are logged to the Jobs Log by concrete5. In addition, you can configure FlexJob Scheduler to log exact job execution times to the main concrete5 Log. This can be a useful diagnostic if jobs are failing because their execution times are overrunning.
FlexJob Scheduler also logs any errors when executing jobs to the main concrete5 Log.
FlexJob Scheduler provides a selection of methods that can be used to trigger and execute jobs. Each method has advantages and disadvantages.
This is the broadly the same method as used by Nontab Scheduler. When concrete5 has finished sending a requested page to the browser, rather than just ending the page request, a scheduled job is requested using a separate web process.
If a job is due to run, a small snippet of jQuery is added to the end of a page. When the page has loaded, after a small delay this will run to make a tiny ajax callback from the browser. This triggers a tool on the server which double-checks the job schedule and the job is then requested using a separate web process.
If a job is due to run, a small 1x1 gif image is added to the end of a page. When the browser loads this image triggers a tool on the server which double-checks the job schedule and the job is then requested using a separate web process in the same way as for the ajax callback method.
FlexJob Scheduler installs the page attribute "FlexJob Scheduler Disabled". When added to a page and set to true, FlexJob Scheduler will not piggy-back on to that page. This may be of use on home pages or pages that already consume considerable resources.
Advanced options can be set by defining php constants in config/site.php. Unless you are a programmer, or are advised to set one of these options by an expert, it is best not to play with these. Setting them wrongly could result in scheduling becoming unstable.
In the FlexJob Scheduler dashboard page, look-ahead next run calculations are cached in the php session for optimum responsiveness. These options have no influence on the actual triggering of jobs.
If your site grows beyond FlexJob Scheduler and you graduate to using grownup real cron, the "Export" tab provides an export of cron settings to get you started.