我是Laravel的新手并且正在建立一个小型的练习项目。
有一张注册表格,每天最多可完成100次注册。
它返回状态 - >等待用户。
现在我的问题是,根据我的知识,连接远程Api的php执行时间是30秒。
然后,如果我需要调用远程api来接收每个用户状态的数据,如果它被接受"那么,如何处理cron作业?或"拒绝"或者仍然在等待"
我正在努力应对这种情况和我的数据库结构,如
userId - status - created_at - updated_at
如果可能的话,我需要在所有用户20小时后拨打电话,如果我们不能立即拨打电话,则需要每4小时拨打一次。
最佳做法是什么?
答案 0 :(得分:0)
对于长期运行的任务,我想到了两个选项:
使用异步task queue。它们专为长时间运行的任务而设计。为每个新注册的用户安排一个工作。确保将超时设置为超过估计的30秒。将用户实例传递给作业的构造函数并将其存储到实例变量中。在处理程序中,只需直接更新记录。
通过http实现回调。这需要控制远程api。在调用远程api时,您将提交一个回调网址,例如https://local-app.domain/callbacks/finished-check-user/223
,其中223是用户的ID。远程api将在完成处理后向给定URL发送http请求。在本地应用程序中,让控制器处理请求,通过其id获取用户,并使用从请求正文中的远程api接收的数据更新它。别忘了确保请求是真实的。
这有帮助吗?