Answers:
我不知道“最佳实践”。我确实知道最常见的错误。
第一个错误:自己动手做
您可以使用网络处理程序来处理长时间运行的作业。这可能是坏的,也可能是非常坏的,这取决于您成为长期工作的命中百分比,它们运行了多长时间以及获得的持续流量。
您想要确保在完成长时间运行的工作的时间内不会收到超过1个长时间运行的工作。如果您自己执行DOS。如果百分比和时间保持一致,那么您获得的流量越多,情况也会越糟。这是自我限制流量增长的问题之一。
第二个错误:从Webhandler产生
从Web处理程序生成一个进程以处理一个长时间运行的进程可能很棘手,因此也容易出错。
选件
我通常使用at(1)
干净的方式与Web处理程序分离,而不会分叉。
您还可以通过使用轮询实现cron
。
您可以与另一个处理该进程的服务器进程进行通信。可以使用sockets
,pipes
或更高级别的抽象(例如REST http调用或路由队列消息)进行通信。
我想您正在谈论的时间超过几分钟。
如果几分钟,您可以在后台启动工作线程并在UI上显示一些进度。许多Web应用程序都使用该方法。
如果超过5分钟,则可能需要将任务委派给专用服务。一个示例是Google Analytics(分析)生成的报告。
Microsoft消息队列可用于将信息从系统传输到另一个系统,或将组件传输到另一个系统。