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

标签 javascript c# ajax asp.net-mvc hangfire

您好,我在 MVC 5 中使用 hangfire 创建了一个后台作业。我发送了后台作业已启动的通知,但我不知道如何在后台作业完成时发送通知因为我的 ActionResults 方法已经返回。

Controller

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 或其他协议(protocol)。要实现此目的,请使用 IApplyStateFilter 过滤器并实现该接口(interface)的 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
    }}

关于javascript - Hangfire 完成后如何发出通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49857672/

相关文章:

javascript - Node api 不向客户端 ajax 请求返回数据

javascript - 我应该将 PHP 与 ajax 结合起来将数据发送到服务器吗?

javascript - 我想单击按钮一次,每当我刷新页面时,计时器仍会继续计时

c# - mvc 4 底部的脚本 - 不在 View 页面中执行 &lt;scripts>

c# - Power BI Embedded - 嵌入图 block

C# System.Net.WebRequest HTTP 请求无法从传输连接中读取数据 : An existing connection was forcibly closed by the remote host

javascript - ExtJS:如何在特定的 `Window` 组件上加载附加脚本?

javascript - $scope 更改后数据表未正确刷新

javascript - 将 HTMLElement 的引用传递给 Polymer 元素

php - 更改图像 onclick - Javascript 按钮和 AJAX?