我想在我的某个网站上实施徽章/信誉系统 . 当用户执行动作时,将引发事件(例如:QUESTION_PUBLISHED),以便系统可以检查是否可以向用户授予新徽章 .
一些徽章的逻辑非常复杂,需要慢速的SQL查询 . 我没有使用cron作业,而是考虑使用异步调用 . 所以基本上我会:
用户执行操作(例如:发表评论)
引发事件(例如:COMMENT_POSTED)
徽章检查是异步完成的(CheckJournalistBadge())
PHP中#3是否可行?
我不认为在PHP中可以进行异步调用,但您可以进行模拟 . 也许将请求放在数据库中,并且只有一个cron作业只检查这些请求并将它们标记为已检查,甚至删除检查的行,同时将结果(例如,如果已颁发徽章)添加到用户表中(无论哪个是在你的情况下) .
1 回答
我不认为在PHP中可以进行异步调用,但您可以进行模拟 . 也许将请求放在数据库中,并且只有一个cron作业只检查这些请求并将它们标记为已检查,甚至删除检查的行,同时将结果(例如,如果已颁发徽章)添加到用户表中(无论哪个是在你的情况下) .