我正在使用 PHP 创建一个支付系统,该系统依赖于 REST API。
我的业务逻辑:
如果有人通过我的系统提交请求,假设“从 A 点转账到 B 点”,该交易将保存在我的数据库中,状态为:“已提交”,然后提交到(移动网络运营商)API URL,该 URL处理它并将状态返回到我的系统,将我的数据库事务状态更新为新状态“例如:WAITING确认”并通知用户传入状态。
问题是:
我的应用程序应该以 10 秒的间隔不断请求以检查新状态并向用户显示新状态,直到最后一个状态为“完成或拒绝”,因为状态范围可以为 5,例如:“正在等待,拒绝、批准、完成...' .
我已经成功地使用 AJAX 来做到这一点,在 JavaScript 中设置时间间隔。但如果用户关闭浏览器或发生任何事情,它就会停止请求。导致我的应用程序不知道钱是否已交付。
我想知道如何使用 Gearman 在后台运行此循环任务,而不涉及 JavaScript 时间间隔,谢谢
最佳答案
Gearman 更多的是一个工作队列,而不是一个调度系统。我可能会设置某种类型的 cron 作业来查询数据库并以异步方式向 Gearman 提交适当的作业。使用 gearman,您将需要使用 libdrizzle 或其他持久队列以及某种类型的 GearmanWorker 进程管理器来一次运行多个作业。目前有许多项目在这方面取得了不同程度的成功,例如 https://github.com/brianlmoon/GearmanManager 。我评估过的 worker 管理器都没有真正达到标准,因此我创建了自己的 worker 管理器,它可能很快就会开源。
关于php - 如何使用德语执行重复性任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45045715/