php - 如何使用德语执行重复性任务

标签 php mysql ajax gearman

我正在使用 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/

相关文章:

php - 在 PHPRedis session 上设置过期

mysql - 在单个查询中更新相同的 mysql 字段两次

php - 根据选项更改价格并获取要发布的尺寸

php - 如何使用 PHP 从字符串中截断非 ascii 字符

php - 显示两个数字之间的值

php添加多个持续时间以获得总持续时间

MySQL:多值字段与新表

php - 尝试更新 MySQL 中的行时,bindParam 错误

javascript - 返回来自 javascript 函数的 ajax 调用的数据

javascript - 无法使用 ajax 将值传递给 Codeigniter Controller