Hangfire完成后如何发出通知 - javascript

嗨,我已经在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对象 - javascript

JSON(来自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中的字符串评估函数 - javascript

            JavaScript中是否有任何内置函数,例如Python中的eval内置函数?注意:eval函数将方程式作为字符串并返回结果。例如,假设变量x为2,则eval("2x+5")返回9。 参考方案 是的,JavaScript中也有eval函数。此外,该声明应有效用于评估,即eval("2*x+5"…