Child pages
  • [scheduled tasks] Scheduled task execution method detection
Skip to end of metadata
Go to start of metadata

Imported From: http://groups.google.com/group/in-portal-dev/browse_thread/thread/33e091598f35204b#

In-Portal has scheduled tasks section, where all actions that are performed automatically are specified.

There are 2 ways to invoke these actions:

  • when somebody visits a page (default) - no way to ensure that scheduled task will be executed on time
  • via cron - complete control and scheduled task protection

Setting for changing to cron invocation mode is located somewhere in "Configuration -> Website -> Advanced" page and I bet nobody goes specially and checks it.

I see several problems with it now:

  • scheduled task invocation method selected by default isn't optimal
  • if user enabled "Run Scheduled Tasks from Cron" setting and don't add proper line (we don't show exact line anywhere) to crontab, then nothing would work (but user could think it works)

Solution

  1. write last time, when cron.php script was executed and it's execution method: web/cli;
  2. on scheduled task page:
    • ask user to enable scheduled task execution via cron (quick link, like with Change Logs section) if we know that cron is running;
    • if cron isn't running, then show exact crontab line, that user must add to it;
    • if cron is running, but it's interval is larger, then 1 minute (compare last recorded date with current execution date), then show warning, that it must be changed (on some hosting it's not allowed to run cron once per minute);
    • show last cron execution date (right now I need to look at all scheduled tasks and find out which one was executed last);
    • show relative scheduled task last/next run dates, e.g "5 min ago" or "in 10 hours", since it's easier to understand then comparing all scheduled task dates with current date (which even isn't shown on that page).
    • highlight "last run date" in red if scheduled task was late (was executed not in between 2 last execution intervals); this in most cases would indicate that cron is dead

Related Tasks

INP-1182 - Getting issue details... STATUS

2 Comments

  1. Hi Alex,

    I really like all your ideas here!

    I think we definitely create a task here for 5.3.0 and improve our
    scheduled task experience with this.

    Thanks.

    DA

  2. Task:

    INP-1182 - Getting issue details... STATUS