1

我正在尝试实现一个基本但灵活的“事件队列”,以便我的网络应用程序可以异步运行 subs。我现在为我工作的方式是应用程序将记录写入我数据库中的“事件队列”表中,其中包含有关做什么和何时触发的信息。然后我有一个守护程序脚本,它会定期查询该表,如果需要做某事,它会触发它。

我想开始使用 AnyEvent 或 EV 之类的观察者,所以我不会经常访问我的数据库,但尽我所能,我找不到关于“最佳实践”的好信息来设置这样的东西. AnyEvent 的文档非常好,但它似乎假设您知道应该如何传递您的事件......我不知道。

我的观察者应该在看什么?一份文件?如果是这样,该文件中应该包含什么?我不需要发送一大堆数据,我只需要一些内容,“现在就去运行这个子”

我将非常感谢有人指出我正确的方向。

编辑: 有人要求我更具体:我试图触发的事件是多种多样的。有时是需要发送的电子邮件,有时是一些数据库工作,有时我只需要延迟几个小时或几天的操作。在所有情况下,我都有某种后端脚本来处理操作,我只需要一种方法让我的前端(网络应用程序)告诉我的后端,“嘿,我需要你在 x 分钟内完成此操作”或“我需要你现在就做这个”

4

2 回答 2

1

您可能会查看Mojolicious,它被构建为非阻塞和异步响应。如果您安装了它,它甚至会在内部使用 EV。要开始阅读文档Mojolicious::Lite,然后从这里阅读指南(按顺序):http: //mojolicio.us/perldoc

那么你真正想要做什么呢?在您描述您真正需要的东西之前,我无法再为您提供任何帮助。

于 2013-03-15T23:50:39.613 回答
0

有一些 CPAN 模块可以通过消息队列运行异步任务。例子:

于 2013-03-16T07:12:46.120 回答