我制作了将向用户发送消息但请求未成功完成的Web服务
我知道这是因为并非所有用户都收到了消息。 有人可以帮我吗?下面是我的代码
#define Integers_in_File 3
int array[Integers_in_File];
for(int i = 0; i < Integers_in_File; i++)
{
fscanf(ptr,"%d",&array[i]); // writing to respective int buffers,
} // provided as elements of an int array.
for(int i = 0; i < Integers_in_File; i++)
{
printf("%d",array[i]); // Output the scanned integers from
} // the file.
答案 0 :(得分:0)
如果必须使用任务,可以尝试采用此任务,请注意最后三个参数,它们可能不符合您的要求。
Task.Factory.StartNew(
() =>
WriteMessageInBackground(invoicesIn.Split(','), _messageController, chkSms.Checked,
chkEmail.Checked, messageTemplate),
CancellationToken.None,
TaskCreationOptions.PreferFairness,
TaskScheduler.Default);
它立即返回,但重要的是要理解,WriteMessageInBackground方法只是将消息批量写入表中,我们还有另一个组件来拾取它们进行发送,因为邮件服务器尤其喜欢接收它几天自己该死的时间。 正如评论中所提到的,如果这项工作真的可以长期运行,那么确实需要将其移交给网站以外的其他地方来运行它。
答案 1 :(得分:0)
因此,您正在启动一个大约需要2个小时才能完成的后台线程,但尚未完成。
可能会发生几件事:
我的赌注是第二名。您可以configure the app pool to never shut down,但是ASP.NET根本不是为长时间运行的后台任务而设计的。您仍然有理由手动回收应用程序池,并且您将不知道后台任务是否仍在运行。您最好将作业放在数据库中的队列中,并使用Windows Service进行处理。