【问题标题】:Launch long running process from HTTPListener [closed]从 HTTPListener 启动长时间运行的进程 [关闭]
【发布时间】:2013-09-05 20:01:45
【问题描述】:

我已经使用 HTTPListener 实现了一个简单的 HTTP 服务器,我需要从 HTTPListerner 启动一个运行大约 10 分钟的进程。当用户发出请求时,我不希望用户在浏览器中等待,直到进程完成,因为它会超时。所以我启动进程并返回一个状态。如何启动该进程?

【问题讨论】:

  • OP 似乎在询问一个过程,而不是一个方法。 Process.Start 似乎更合适。

标签: c# .net multithreading httplistener


【解决方案1】:
【解决方案2】:

在我看来你应该:

  1. 接收请求并为其分配唯一 ID
  2. 启动进程
  3. 将唯一 ID 发回给用户
  4. 允许用户使用您的 ID 取回您的处理状态

这些 ID 是存储在内存中还是文件/数据库中,由您自行选择(取决于您的应用)。

另外考虑一下,如果这个简单的 HTTP 服务器托管在 IIS 上,那么 IIS 有机会在必要时立即终止您的进程,因此启动长时间运行的进程并不是一个好主意。

您应该使用您的 HTTP 服务器接收请求,然后从后端服务启动该过程。

【讨论】:

    猜你喜欢
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 2011-06-14
    • 2012-09-28
    • 1970-01-01
    • 2011-08-09
    • 2016-04-15
    • 1970-01-01
    相关资源
    最近更新 更多