我有一个应用服务,它有一个连续运行的带有 2 个插槽的网络作业。生产和分期。
代码是这样的
public static void ProcessQueueMessage([QueueTrigger("mywjqueue")] string message, TextWriter log)
{
string hostName = Environment.GetEnvironmentVariable("Slot");
var endDate = DateTime.Now.AddMinutes(10);
int count = 0;
while (endDate > DateTime.Now)
{
count++;//Environment.MachineName
log.WriteLine($"{count} ({DateTime.Now.ToString("T")})- '{message}'; Thread Id: {System.Threading.Thread.CurrentThread.ManagedThreadId}; slot:{hostName}");
System.Threading.Thread.Sleep(1000);
}
}
有时,如果生产槽 webjob 中正在运行某些进程,则管道中的任务交换槽会显示成功,但在 azure 上,槽不会切换!
查看Configuration and Management
>Check Swap Operations
我们可以看到有一个问题,因为它说它无法修改站点,因为另一个操作正在进行中。
这是一个已知问题吗?如何解决?在尝试交换插槽之前先停止生产中的连续网络作业?