我目前有一个API正在运行,它将一个摄取作业委托给一个简短的轮询bash脚本。我不知道使用像strongMQ的本地适配器这样的东西是否会比短轮询实现消耗更少的资源。
https://github.com/strongloop/strong-mq
如果消息队列的资源密集度低于短轮询,那么考虑到消息队列的实现是一个单独运行的微服务,它是操作系统上运行的另一个节点进程或"集群",这究竟是怎么可能的。
归根结底是轮询频率和每次轮询的开销。
如果您不经常轮询,那么在crontab中执行bash脚本之类的操作可能会消耗较少的资源,因为这些资源只在轮询期间消耗。
如果您的轮询频率如此之高,以至于您的轮询脚本运行的时间比睡觉的时间还长,那么使用消息队列之类的东西并支付较小但更恒定的间接税可能更有意义。
使用shell脚本的"短轮询"
每个周期都涉及启动一个bash进程,该bash进程分出几个子进程来执行任务,如读取文件和通过grep运行结果,那么就有了一些可测量的开销。如果检查的结果是肯定的,那么您可以派生一些其他脚本或进程来执行排队的操作。
消息队列轮询
每个循环都涉及到根据某种条件检查内存中的值。如果满足条件,则向连接的客户端发送通知消息/数据包。然后,客户端执行排队的任何操作。