我有一个 Azure Worker Role,它具有三种类型的进程:
- 从数据库读取并写入工作输入队列(Task1)的 C# 线程
- 从worker-input-queue读取的 Java 线程确实工作并写入worker-output-queue
- 从worker-output-queue读取并写入数据库的 C# 线程(Task2)
Task1 和 Task2 无限期地运行并在它们各自的队列为空时休眠。
我的代码如下所示:
SpawnJavaProcesses();
Task.Factory.StartNew(Task1);
Task.Factory.StartNew(Task2);
while(true)
{
//do some trivial sporadic work
Thread.Sleep(60*1000);
}
我的问题:
- 启动 Task1 和 Task2 时是否应该使用 LongRunning 任务创建选项?
- 有没有更好的方法来实现我在这里尝试做的事情?