如何使用Cron函数解析庞大的用户列表?

时间:2011-06-02 作者:mike23

我有几千个用户订阅了一个WP网站。每天我都需要给每个用户发送一封电子邮件。电子邮件是根据多个自定义用户配置文件字段的数据自定义生成的。对于每个用户,基于此数据的自定义查询将返回帖子列表,这些帖子构成电子邮件的消息。

正如你所想象的那样,这可能会在服务器上造成相当大的负担,因此,当我启动解析用户、生成电子邮件并发送邮件的功能时,Wordpress崩溃了。它可以与几十个用户一起工作,但几千个用户太多了。

为了避免这种情况,我想做的是一次只处理10个用户,例如每两分钟处理一次。我可以用CRON函数来实现这一点。

我正在寻找最好的方法。这就像“解析前十个用户并发送他们的电子邮件,然后解析下十个,等等。”

我如何实施这个十之八九的规则?我的函数如何知道每次调用它时启动哪个用户?

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

看见wp_schedule_single_event() 作用一般的想法是,每次处理完一批用户后,都会提前几分钟安排下一次运行,并在参数中传递信息(例如要继续的用户的偏移量)。

在更大范围内,我会考虑寻找其他更专业的解决方案或简化您的流程。群发电子邮件不容易做到正确,WP的开发也没有考虑到这些任务。

结束

相关推荐

如何在wp-admin users.php中显示多个定制列?

我使用manage\\u users\\u列来显示我在usermeta数据库中创建的名为company的自定义字段。我的代码如下:function mysite_column_company( $defaults ) { $defaults[\'mysite-usercolumn-company\'] = __(\'Company\', \'user-column\'); return $defaults; } function mysite_custom_col