在Gearman的客户端,如何删除其试图调用一个函数nonexisted工作?

问题描述 投票:1回答:1

我使用PHP的Gearman API。

在我的客户端,gclient.php:

    $gClient = new GearmanClient();
    $gClient->addServer('127.0.0.1', 4730);
    $gClient->setTimeout(2000);
    $ret = $gClient->doNormal('functionNameNonexist', json_encode(array(
        'k' => 'v',
    )));
    $returnCode = $gClient->returnCode();
    if ($returnCode != GEARMAN_SUCCESS)
    {
      echo "bad return code: {$returnCode}\n";
    }

通过运行命令gearadmin --show-jobs,我可以看到每次执行PHP脚本时间后,工作队列变长。

有没有一种方法,以消除/取消那些已经在像1分钟留在队列中的作业。

php gearman
1个回答
0
投票

有两个快速的方法来删除队列中的作业:

  1. 在工作模式下使用Gearman的CLI工具来获取工作,并将它们发送到/ dev / null的:

的Gearman -n -w -f your_function_name>的/ dev / null的

  1. 重新启动gearmand。请注意,如果您使用的是持久性的工作的商店,你需要从表中删除该作业记录。如果你不使用持久性的工作商店,要小心 - 你将失去所有其他工作也是如此。
© www.soinside.com 2019 - 2024. All rights reserved.