草庐IT

任务调度

全部标签

c# - 安排每天在特定时间刷新 HttpContext.Cache 的任务

我有一个正在运行的MVC3c#网站,它从网络服务中提取记录。随着它从web服务获取的数据集变得越来越大,我正在寻找一种方法来创建它的缓存,而不是在没有当前缓存的情况下由第一个访问该站点的用户触发,而是按每日计划(如cron作业、计划任务等)。我应该怎么做?我是否需要某种触发器库,如Quartz.net?(我宁愿使用更简单的解决方案)现在我的Controller中有:privateListGetSummaries(){//getsummariesfromcacheifavailableListsummaries=(List)HttpContext.Cache["SummariesCach

c# - 接口(interface)的调度程序实现的 Ninject 绑定(bind)

我有一个界面:publicinterfaceIService{voidDoStuff(intparm1,stringparm2,GuidgimmeABreakItsAnExampleK);}我想配置Ninject(v3)绑定(bind),这样我就可以有一个“调度程序”shuffle方法调用多个IService实例,如下所示:publicsealedclassDispatcherService:IService{privateIEnumerable_children;publicDispatcherService(IEnumerablechildren){this._children=c

c# - 任务未被垃圾收集

在下面的程序中,我希望任务得到GC,但它没有。我使用了一个内存分析器,它显示CancellationTokenSource持有对它的引用,即使任务显然处于最终状态。如果我删除TaskContinuationOptions.OnlyOnRanToCompletion,一切都会按预期进行。为什么会发生这种情况,我该如何预防?staticvoidMain(){varcts=newCancellationTokenSource();varweakTask=Start(cts);GC.Collect();GC.WaitForPendingFinalizers();GC.Collect();Con

c# - 如何定义接受任何生成 IEnumerable<T> 的任务的函数?

我正在寻找一个函数来接受任何产生IEnumerable的任务.为了说明,请考虑以下函数签名。voidDoWork(Task>task){}现在,我想按如下方式调用此方法:Tasktask=Task.FromResult(new[]{1,2,3});DoWork(task);显然,这行不通,因为两个Task类型不相同,并且任务不存在协方差。但是,我想知道是否有一些聪明的技巧可以让它发挥作用,灵感来自以下示例。asyncTask>GetTask(){returnawaitTask.FromResult(newint[]{1,2,3});}在这里,await正在使用内联任务的结果有效地创建一

c# - 有没有办法知道是否正在等待任务?

我有一个方法publicTaskDoSomeWorkOnARemoteMachine()它非常具有描述性,通过以下方式在远程机器上执行一些工作:在消息总线上排队消息,表明工作应该完成远程代理接收消息并执行工作工作完成,代理在消息总线上排队消息以表明工作已完成调用工作的应用程序接收工作完成的消息我使用Task的原因是因为第一个Task用于消息的排队;而内部Task当远程机器上的工作完成时(即收到来自代理的消息时),就完成了。远程代理在工作执行期间捕获的任何异常都与完成消息一起传递,并在内部Task时重新抛出。完成。要调用此方法,我使用:awaitawaitDoSomeWorkOnARem

c# - 使用 DelegatingHandler 配置 Swashbuckle 作为消息调度程序

我有一个WebAPI,它是一个非常薄的基础架构,只包含两个DelegatingHandler实现,它们将传入消息分派(dispatch)到业务层中定义的消息处理程序实现。这意味着没有Controller,也没有Controller操作;API仅基于消息定义。这意味着在实现新功能时不需要更改此基础架构层中的代码。例如,我们有这样的消息:创建订单命令ShipOrderCommandGetOrderByIdQueryGetUnshippedOrdersForCurrentCustomerQuery委托(delegate)处理程序根据url确定确切的消息,并将请求内容反序列化为该消息类型的实例

c# - 如何使用 Google Calendar API 创建任务

我想使用Google日历API在Google日历中创建任务。使用C#。寻找一些示例代码。 最佳答案 遗憾的是,Google日历中的任务功能没有API。虽然日历数据API非常广泛,但任务团队尚未发布API。包括您在内的许多人都请求过这样的API,但Google尚未采取任何措施来填补这一空白。DataAPI组上有很多关于这个的帖子,例如thisone.但是,Google可能很快就会发布一个。在那之前,如果你真的需要使用任务,你将不得不进行屏幕抓取。换句话说,您必须研究GCalendarUI的工作原理并模拟与之交互。有些人可能已经解决了这

c# - HttpClient GetAsync 在 Windows 8 的后台任务中失败

我有一个WinRT应用程序,它有一个后台任务负责调用API来检索它需要更新自身的数据。但是,我遇到了一个问题;在后台任务之外运行时,调用API的请求可以完美运行。在后台任务中,它失败了,并且还隐藏了任何可能有助于指出问题的异常。我通过调试器跟踪了这个问题来跟踪问题点,并验证了执行停止在GetAsync上。(我传递的URL有效,不到一秒URL响应)varclient=newHttpClient("http://www.some-base-url.com/");try{response=awaitclient.GetAsync("valid-url");//NevergetshereDeb

c# - 您可以从 .net 运行 SSIS 任务吗?

我已经安排了运行SSIS包的sql代理任务。我希望能够从.net运行SSIS包。有没有办法直接运行SSIS包或至少运行SQL代理任务,后者又会运行SSIS包。如果对用C#编写的.net3.5网络应用有帮助的话谢谢! 最佳答案 可用于运行SSIS包的选项是-使用SSIS对象模型以编程方式运行包。联机丛书中对此进行了详细讨论here.一个例子:usingSystem;usingMicrosoft.SqlServer.Dts.Runtime;namespaceRunFromClientAppCS{classProgram{staticvo

c# - 一个任务可以有多个等待者吗?

我正在研究一个Windows8项目的异步服务,该服务有一些异步调用,一次只能调用一次。publicasyncTaskCallThisOnlyOnce(){PropagateSomeEvents();awaitSomeOtherMethod();PropagateDifferentEvents();}由于您不能将异步调用封装在lock语句中,我想到了使用AsyncLock模式,但我想我不妨尝试这样的事情:privateTask_callThisOnlyOnce;publicTaskCallThisOnlyOnce(){if(_callThisOnlyOnce!=null&&_callTh