Asynchronous functions in Wordpress 5/28/13
Last Tuesday I went to the local Wordpress Meetup where Jack Reichert gave an excellent talk on using Wordpress actions and filters. In one especially clever example, he combined an action with wp_schedule_single_event() to run a bit of code asynchronously:
After a post is saved, MY_FUNCTION()
is scheduled to run the next time Wordpress’s pseudo-cron system is activated1. This would be useful if MY_FUNCTION()
was going to do something that would take a long time2. Instead of forcing the user to wait for MY_FUNCTION()
to finish, they’ll see that the post saved immediately and can go about their business.
This example uses save_post, but you could tie it to any of the other Wordpress actions that are available.
-
Wordpress’s pseudo-cron is run when a page is loaded on your site. If you get low traffic, your cron jobs may not be run anytime close to when you intended. You can use a plugin like Cron View to see what’s scheduled. ↩
-
Anything involving data transfers with another server would be a good candidate. ↩