从global.asax.cs文件中的控制器在计时器上调用函数 呼叫者被叫方

问题描述

我是C#编程的新手,无法弄清楚如何每小时触发一次函数。

该功能位于我的一个控制器中。

我在互联网上找到的唯一方法是从Global.asax.cs文件中调用它,但是它不起作用。

有人可以帮我吗?

呼叫者

public class WebApiApplication : System.Web.HttpApplication
{
    private static Timer timer;
    protected void Application_Start()
    {
        // AreaRegistration.RegisterAllAreas();
        GlobalConfiguration.Configure(WebApiConfig.Register);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        //WebApiConfig.Register(GlobalConfiguration.Configuration);

        timer = new System.Timers.Timer(10000);
        var SSSData = new SSSData();

        timer.Elapsed += new ElapsedEventHandler(RedirectToAction("DoPushSend","Notification",new
        {
            dataSSS = SSSData
        }));
        timer.Interval = 3600000;
        timer.Enabled = true;
    }
}

被叫方

public static void DoPushSend(SSSData dataSSS)
{
    client.BaseAddress = new Uri("sample.com/3/");
    client.DefaultRequestHeaders.Accept.Clear();
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

    try
    {
        string url = "sample.com/device/";
        WebClient client = new WebClient();
        string content = client.DownloadString(url);
        List<string> expoTokens = JsonConvert.DeserializeObject<List<string>>(content);

        var expoSDKClient = new PushApiClient();
        var pushTicketReq = new PushTicketRequest()
        {
            PushTo = expoTokens,PushBadgeCount = 7,PushBody = dataSSS.DESCRIPTION + "[<$>]" + dataSSS.LAT + "[<$>]" + dataSSS.LON + "[<$>]" + dataSSS.MAXRADIUS
        };

        int nowTimeTo = DateTime.Compare(DateTime.Now,dataSSS.TIMETO);
        int nowTimeFrom = DateTime.Compare(DateTime.Now,dataSSS.TIMEFROM);

        if (nowTimeFrom >= 0)
        {
            if (nowTimeTo <= 0)
            {
                var result = expoSDKClient.PushSendAsync(pushTicketReq).GetAwaiter().GetResult();
            }
        }
    }
    catch (Exception e)
    {
        SSS_Common.Helpers.ErrorHelper.WriteToLog("Notification : ",e);
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...