Changeset View
Changeset View
Standalone View
Standalone View
externals/JAXL/docs/users/cron_jobs.rst
- This file was added.
| Cron Jobs | |||||
| ========= | |||||
| ``JAXLClock`` maintains a global clock which is updated after every iteration of the :ref:`main select loop <jaxl-instance>`. | |||||
| During the clock tick phase, ``JAXLClock`` also dispatches any scheduled cron jobs. | |||||
| Lets try some cron job scheduling using Jaxl interactive shell: | |||||
| >>> ./jaxlctl shell | |||||
| jaxl 1> | |||||
| jaxl 1> function do_job($params) { | |||||
| ....... echo "cron job called"; | |||||
| ....... } | |||||
| jaxl 2> | |||||
| jaxl 2> $ref = JAXLLoop::$clock->call_fun_after( | |||||
| ....... 4000, | |||||
| ....... 'do_job', | |||||
| ....... 'some_parameters' | |||||
| ....... ); | |||||
| jaxl 3> echo $ref; | |||||
| 1 | |||||
| jaxl 4> | |||||
| cron job called | |||||
| jaxl 5> quit | |||||
| >>> | |||||
| We just saw a live example of a cron job. Using ``JAXLClock::call_fun_after/3`` we were able to | |||||
| call our ``do_job`` function after 4000 microseconds. | |||||
| .. note:: | |||||
| Since cron jobs are called inside main select loop, do not execute long running cron jobs using | |||||
| ``JAXLClock`` else the main select loop will not be able to detect any new activity on | |||||
| watched file descriptors. In short, these cron job callbacks are blocking. | |||||
| In future, cron jobs might get executed in a seperate process space, overcoming the above limitation. | |||||
| Until then know what your jobs are doing and for how long or execute them in a seperate process space | |||||
| yourself. You have been warned !!! | |||||
| one time jobs | |||||
| ------------- | |||||
| ``call_fun_after($time, $callback, $args)`` | |||||
| schedules $callback with $args after $time microseconds | |||||
| periodic jobs | |||||
| ------------- | |||||
| ``call_fun_periodic($time, $callback, $args)`` | |||||
| schedules periodic $callback with $args after $time microseconds | |||||
| cancel a job | |||||
| ------------ | |||||
| ``cancel_fun_call($ref)`` | |||||
| cancels a previously scheduled $callback | |||||
| detecting bottlenecks | |||||
| --------------------- | |||||
| ``tc($callback, $args)`` | |||||
| calculate execution time of a $callback with $args | |||||