For most of this week, I have been whinging about not being able to get posts to fire according to the “Daily Schedule” I have posted in the sidebar. I installed and tested various scheduling modules, but nothing seemed to work.
As so often with minor computing problems, the computer was doing exactly what I told it to do.
Drupal comes with a default cron module called “Automatic Cron.” Suppose I schedule a post to fire at 2:00pm. Automatic Cron will fire it if there is user activity — that is, if the user forces the server to respond in some way — at ~2:01pm or after. But if there is no user activity, and the server is quiescent, nothing will happen. The Jackpot Blog is (currently) low traffic. So if the post I schedule to fire at 2:00pm fires at 2:38pm, that’s because nobody visited the site until that time.
In other words, the post firings appeared to be random with respect to my schedule because they were random.
However, cron also works at the server level, at my host. So I just told my server to fire Drupal’s cron every hour on the hour, and I can schedule around that. (That is, if I want to be sure a post has fired at 2:00pm, I schedule it to fire at 1:55pm, and the host cron will take care of it.
All this is a chunk of well-known administrivia that I should have remembered from when I last worked with Drupal, ten years ago. (Also, my host’s support AI chatbot went in a plausible but completely wrong direction.)
