Cron

This table is named after the time-based job scheduler in Unix-like computer operating systems. It lists jobs (~tasks), scheduled to run periodically at certain times or dates. The tasks can be related to system maintenance, security checks, log processing, or any user action needed to be performed on a regular (~periodic) fashion.

Please, notice that this table has to do with scheduling and logging of preexisting zoglair plugins, classified as tasks (see below). So, although you are free to create as many rows you want here, you won't be able to code new functionality - you have to select an existing one.

The cron form contains the following fields:

[Main]

New Cron Form

  • Addon ID
    The ID of the Addon row, to which this job belongs.
  • Title
    A descriptive title.
  • Minute
    A number (0-59), a list of numbers and/or ranges (comma delimited), or an asterisk.
  • Hour
    A number (0-23), a list of numbers and/or ranges (comma delimited), or an asterisk.
  • Week Day
    A number (0-6), a list of numbers and/or ranges (comma delimited), or an asterisk.
    You may use three-letter day name abbreviations (case insensitive) instead of numbers (Sun, ..., Sat).
  • Month Day
    A number (1-31), a list of numbers and/or ranges (comma delimited), or an asterisk.
  • Month
    A number (1-12), a list of numbers and/or ranges (comma delimited), or an asterisk.
    You may use three-letter month name abbreviations (case insensitive) instead of their numbers (Jan, ..., Dec).
  • Task
    The task to be executed.
  • Last Run
    When this job was last run.
  • Next Run
    When this job will next run.

Notice: All time fields above, share a common syntax:

  • A comma (,) separates multiple entries.
    For example, “10,25” means both 10 and 25.
  • A hyphen (-) denotes a range.
    For example, “10-25” means from 10 to 25 (inclusive).
  • An asterisk (*) matches all possible values of a field.

[Code]

A text area, used for supplying task-specific parameters.

[Log]

A text area, used for logging task activity. You are free to edit and/or clear it.

Please, keep in mind...

There is a great difference between:

  • a real, operating system level, scheduler (such as Cron in Linux or Task Scheduler in Windows), and
  • a simulated one, such as in zoglair.

The real scheduler runs constantly, watching the clock, and executes tasks in parallel. This is its job. Zoglair does not run constantly. It only runs whenever a visitor requests a resource from your site. As soon as it serves that resource, it dies. This is the nature of HTTP. Additionally, the real scheduler caches the scheduled jobs into memory (since it never stops running). Zoglair cannot do that. It has to load them from the database, at all times. So, we have two issues here, that need to be addressed: accuracy and performance.

  • Accuracy has to do with executing tasks at the exact time they were scheduled.
  • Performance has to do with decoupling their execution (which can take a long time to complete) from the normal flow of responding to visitor requests.

For the first issue (accuracy), zoglair cannot do much... If you have a busy site, working 24/7/365, then you will be fine. But if your site has no traffic, at the exact time one or more tasks are scheduled for execution, then they will be postponed. As soon as a request is made, they will be executed. Normally, this situation should not be a problem. Zoglair has no time-critical tasks, on its own. It won't matter if they run a few minutes, even hours, later. But, if there are other tasks that you have installed yourself, and their scheduled times are critical, then you should use the scheduler of your operating system to run them. All that is needed is a request to the following URL:

http://<host>/[<zoglair>/]img/cron

For example, on a Linux machine, you could add the following entry in /etc/crontab:

*/5 * * * *  wget -q http://www.example.com/img/cron > /dev/null 2>&1

As for the second issue (performance), zoglair uses a simple but effective trick to trigger its internal mechanism that queries, runs and reschedules jobs. It places an invisible (zero width and height) image at the bottom of the HTML page (with the path shown above), which forces the browser to make a separate request, after the page is already rendered. For even better performance and less burden to the server, that image is not injected in every page delivered, but periodically, based on the “Run Cron Every” system setting.

(C) Nick B. Cassos - All Rights Reserved
powered by zoglair
page generated in 28ms (11 queries, 5ms)