Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
谁先完成?Gearman还是Mongo PHP插件?_Php_Mongodb_Gearman - Fatal编程技术网

谁先完成?Gearman还是Mongo PHP插件?

谁先完成?Gearman还是Mongo PHP插件?,php,mongodb,gearman,Php,Mongodb,Gearman,我正在研究运行Gearman()并使用mongophp库在Mongo中存储数据以管理插入/更新。所以步骤是 步骤: 通过php mongo Insert将一些数据插入mongo。当我插入数据时 我能够从初始数据对象中获取新项“\u id” 运行php代码段向Gearman服务器发送要执行的作业,并将_id作为 数据 gearman PHP脚本可以立即运行,并且 从mongo获取_id并对其进行一些处理 我的问题是……在gearman开始寻找数据之前,数据是否会在Mongo中。换句话说,id不是检

我正在研究运行Gearman()并使用mongophp库在Mongo中存储数据以管理插入/更新。所以步骤是

步骤:

  • 通过php mongo Insert将一些数据插入mongo。当我插入数据时 我能够从初始数据对象中获取新项“\u id”
  • 运行php代码段向Gearman服务器发送要执行的作业,并将_id作为 数据
  • gearman PHP脚本可以立即运行,并且 从mongo获取_id并对其进行一些处理

  • 我的问题是……在gearman开始寻找数据之前,数据是否会在Mongo中。换句话说,id不是检测是否存储了新数据的好方法。有办法检查这个吗?我需要在PHP代码将作业发送给gearman之前暂停PHP(类似于阻塞讲话),因为gearman服务将立即启动并在mongo中查找_id。这可能吗?我的理解是,如果mongo insert异步运行,那么插入项可能会有足够的延迟,这比gearman php脚本启动所需的时间还要长。。。缺少新的id和数据。

    我不懂德语也不懂芒果。。。它们运行了吗?感谢这些无用的拖拉。您可以使用类似cron的方法运行gearman,每隔一段时间处理一次所有新行。无法知道一个是否会在另一个之前完成,关于网络等的未知因素太多。如果您使用已确认的写入,您会很好-当插入返回为成功时,
    \u id
    将可由另一个进程检索。如果您正在运行异步或并行,您可以将成功插入的所有
    \u id
    放入共享队列或其他东西中,并将其发送到Gearman脚本,因为您知道所有这些
    \u id
    都是可检索的。^^这似乎是答案。我发现你想把它作为一个答案,这样我就可以信任你了?