嗨,我已经在MVC 5中使用hangfire
创建了一个后台作业。我发送了一个后台作业已开始的通知,但是我不知道当后台作业完成时如何发送通知,因为我的ActionResults方法已经返回。
控制器
public ActionResult RunMedia(int ID)
{
BackgroundJob.Enqueue<CrawlerSearchRequestModel>(x => x.StoreMedia(ID,"NaturalPerson"));
obj
{
success: true
};
return JSON(obj, JsonRequestBehavior.AllowGet)
}
Ajax呼叫和Javascript通知
$(document).ready(function () {
$(document).on("click", "#submitButton", function () {
debugger;
var userId = $(this).attr('userid')
$.ajax({
type: 'POST',
url: "../LemonCreditAuth/NaturalPerson/RunMedia",
data: {
ID: userId
},
success: function (data) {
swal("Adverse Media!", "Adverse Media has started. After a 20 seconds please check the media case for updates", "success");
},
error: function (data, error) {
swal("Adverse Media!", "Error ocurred while trying to run adverse media", "warning");
}
});
});
谢谢
参考方案
正如其他人所说,您可以使用signalR或其他协议。为此,请使用IApplyStateFilter过滤器并实现接口的OnStateApplied方法。
public class YourAttribute : IApplyStateFilter{
public void OnStateApplied(ApplyStateContext context, IWriteOnlyTransaction transaction)
{
if (context.NewState.IsFinal && context.NewState.Name == "Succeeded")
//Send your message to client via signalR
}}
ajax:从json数组中提取json对象 - javascriptJSON(来自api的内部数组):[{"id":"001", "name":"john", "age":"40"}, {"id":"002", "name":"jane&…
Javascript-从当前网址中删除查询字符串 - javascript单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…
和字符中断通过PHP接收JSON - javascript我有一个包含更多对象的数组。如果一个对象包含&字符,则php不会接收&之后的每个对象。可能是什么问题?这就是阿贾克斯xmlhttp.open("POST", "get.php"); xmlhttp.setRequestHeader("Content-Type", "application/…
Mongo汇总 - javascript我的收藏中有以下文件{ "_id": ObjectId("54490b8104f7142f22ecc97f"), "title": "Sample1", "slug": "samplenews", "cat": …
JavaScript中的字符串评估函数 - javascriptJavaScript中是否有任何内置函数,例如Python中的eval内置函数?注意:eval函数将方程式作为字符串并返回结果。例如,假设变量x为2,则eval("2x+5")返回9。 参考方案 是的,JavaScript中也有eval函数。此外,该声明应有效用于评估,即eval("2*x+5"…