我正在尝试实现一个基本但灵活的“事件队列”,以便我的Web应用程序可以异步运行。我现在为我工作的方式是应用程序将记录写入我的数据库中的“事件队列”表,其中包含有关操作和何时触发的信息。然后我有一个守护程序脚本定期查询该表,如果需要做某些事情,它会将其触发。
我想开始使用像AnyEvent或EV这样的东西走向观察者,所以我不经常打我的数据库,但是尽可能地尝试,我找不到关于设置某些东西的“最佳实践”的好信息像这样。 AnyEvent的文档非常好,但它似乎假设你知道你的事件应该如何传递......我不知道。
我的观察者应该看什么?一份文件?如果是这样,那个文件应该是什么?我不需要发送大量数据,我只是需要一些说法,“现在就去运行这个子”
我非常感谢有人指出我正确的方向。
修改 有人要求我更具体:我正在尝试解雇的事件是多种多样的。有时它是一个需要发送的电子邮件,有时它是一些数据库工作,有时我只需要一个延迟几小时或几天的动作。在所有情况下,我都有一些后端脚本来处理动作,我只需要一种方法让我的前端(网络应用程序)告诉我的后端,“嘿,我需要你在x分钟内去做”或“我需要你现在要这样做“
答案 0 :(得分:1)
您可能会看到Mojolicious构建为非阻塞并且异步响应。如果安装了EV,它甚至会在内部使用它。要开始阅读Mojolicious::Lite
的文档,然后从此处阅读指南(按顺序):http://mojolicio.us/perldoc
那你究竟想做什么呢?在你描述你真正需要的东西之前,我无法再帮助你。
答案 1 :(得分:0)
有一些CPAN模块可以通过消息队列运行异步任务。例子: