gpt4 book ai didi

nopcommerce - 我应该在 nopcommerce 任务中使用 Thread.Sleep 还是 Task.Delay?

转载 作者:行者123 更新时间:2023-12-01 12:26:16 26 4
gpt4 key购买 nike

我在 nopcommerce 的插件中编写任务。任务必须从网站 (https://data.icecat.biz/export/level4/) 下载目录。如果由于某种原因下载失败,我希望我的程序等待一分钟,然后重试几次。

例如

while(notTiredOfWaiting)
{
try{
// my download stuff here
return data;
}
catch(Exception e)
{
Thread.Sleep(60000);
// or
Task.Delay(60000);
}
}

我的问题是 nopcommerce 是某种黑盒子,它启动并运行我的任务。 “简单”的解决方案是使用 Thread.Sleep(),但我不知道是否有任何其他重要进程在同一线程上运行。我试过 Task.Delay(),但它似乎在我的实现中不起作用。

我知道 Thread.Sleep 与 Task.Delay() 是 SO 上的热门话题,但我想就 nopCommerce 中的最佳实践寻求具体答案。

编辑。

任务正在使用 IScheduleTaskService。

最佳答案

我认为重试操作的最佳选择是 System.Threading.Timer ,你不需要担心 nopcommerce 线程行为,你让 .net 来管理线程的东西,你可以使用类似的东西:

void Retry(){
if(notTiredOfWaiting)
{
var timer = new System.Threading.Timer((cb) => { Retry() }, null, 60000, 0);
}
}

关于nopcommerce - 我应该在 nopcommerce 任务中使用 Thread.Sleep 还是 Task.Delay?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39227857/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com