将表锁与wp_INSERT_POST一起使用?

时间:2018-06-09 作者:Peter Westerlund

我每5分钟运行一个cron,插入大量帖子。有时,这些cron会同时运行这两个cron。确保不会造成重复帖子。我想在插入期间使用sql锁表。但这是有问题的wp_insert_post() 因为这是在执行存储的sql进程。

我不想使用常规SQL,因为我没有从所有方面获得好处wp_insert_post() 做并且可能会受到未来wp更新的影响。

有什么方法可以使用wp_insert_post() 带锁的桌子?

1 个回复
SO网友:Bjorn

首先,你的问题表明你的插件有时会运行超过5分钟,你不知道脚本超时了吗?5分钟是一个很长的运行时间。。。您要添加多少帖子,您的服务器环境是什么?

回到问题上来。。。

我可以建议另一种解决方案吗?

只需设置一个选项,即您正在做某事,并在完成后停用它。

实例

function your_function() {

  $is_already_running = get_option(\'is_my_insert_post_running\');

  if( ! $is_already_running) {
    update_option(\'is_my_insert_post_running\', 1); // set is running trigger

    // do your post inserting here

    // When you\'re done, don\'t forget to deactivate
    update_option(\'is_my_insert_post_running\', 0);

  } else {
    // wait for the next cron, i\'m still working on the last one
  }
}
你好,比约恩

结束

相关推荐

如何对一个SQL请求中的一个属性进行两次处理?

我创建了一个只有一个属性的短代码,但是SQL请求需要两个属性%s, 因为子查询。以下SQL不起作用,因为第二个%s 没有值。当我使用第二个属性创建变通方法时%s 在SQL中,子查询按预期工作,但我不想使用两个相同的属性。如何复制单个属性以在SQL请求中使用两次? <?php // Shortcode: [my_shortcode market=\"USA\"] function showSomething( $country ){ $country = short