0

如何在以下代码示例的任务中调用 URL 获取请求。60 秒后urlhttp://mysite/SMS/SendText没有被调用。

        private static CacheItemRemovedCallback OnCacheRemove = null;

        private void AddTask(string name, int seconds)
        {
            OnCacheRemove = new CacheItemRemovedCallback(CacheItemRemoved);
            HttpRuntime.Cache.Insert(name, seconds, null,
                DateTime.Now.AddSeconds(seconds), Cache.NoSlidingExpiration,
                CacheItemPriority.NotRemovable, OnCacheRemove);
        }

        public void CacheItemRemoved(string k, object v, CacheItemRemovedReason r)
        {
            // do stuff here if it matches our taskname, like WebRequest
            // re-add our task so it recurs
            AddTask(k, Convert.ToInt32(v));
        }

        protected void Application_Start()
        {

            AddTask("http://localhost:1901/SMS/SendText", 60);
}
4

1 回答 1

0

基于Cache.Insert 方法,您必须使用UtcNow, 而不是Now添加日期到期时的功能。

所以“我的猜测”是你有一个你无法直接看到的抛出错误,并且插入不起作用,因为现在的 60 秒,将它们转换为 UtcNow 已经过期。

于 2013-09-26T14:23:27.467 回答