我可以在单独的线程中运行较慢的操作吗?

时间:2017-04-20 作者:Ahrengot

我有一个非常慢的运行操作(30-45秒),它会在数据库中的每个用户上循环,并将数据与一些非现场数据库同步。我希望这种情况每天发生一到两次,因此我有一个WP Cron作业设置来触发该操作。

我的问题是,该操作对于呈现页面不是必需的,因此理想情况下,它应该在后台运行,而不是阻止页面呈现。

WordPress中有没有内置的系统可以做这种事情?

我想到的一个真正骇客的解决方案是通过AJAX触发操作,让它在用户访问页面时在后台运行。这似乎不是一个好的选择,所以我想听听你们是否有任何意见或想法来实现这一目标。

1 个回复
最合适的回答,由SO网友:joetek 整理而成

Techcrunch发布了一个库,用于在WordPress中生成异步任务。

https://github.com/techcrunch/wp-async-task

本质上,您可以执行由动作挂钩触发的任何进程,并且可以延迟该挂钩上的处理以异步运行。您可以扩展该类来定义要触发的操作、准备要传递的\\u数据的两个函数以及要执行的操作。

相关推荐

添加cron计划以在SAVE_POST上上传视频

我制作了一个自定义插件来从另一个源获取帖子数据,当我保存帖子时,我会获取所有数据。并将视频从源服务器上传到我们的服务器。但在上传视频之前保存帖子需要一段时间。现在,在保存帖子时,我需要从源中获取所有数据,但计划在1分钟后上传视频,以便在后台上传。代码示例:add_action( \'save_post\', \'update_from_source\'); function update_from_source($post_id) { // code for