问题标签 [fluentscheduler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# Web App FluentScheduler Job 在 ThreadAbortException 之后不会重复
我是负责在 IIS 10.0 上运行的 C# Web 应用程序的开发人员,我使用 FluentScheduler 库来安排我的作业。
该作业执行数据库查询,然后生成一些文件。最近,我们的作业因运行时间过长而失败,并且 Windows 杀死了线程(这只发生在需要处理大量数据的特定日期)。
在对数据库访问进行了一些优化之后,我把线程杀死了一堆,但它仍然偶尔会发生。
问题是,在线程被杀死(并记录异常)之后,作业停止在预定时间运行。
即使确实发生了此异常,我如何确保作业继续运行?
我的代码如下:
第一次运行时有 10 分钟的延迟,因为我们在数据库中缓存了一些可用信息以提高应用程序的性能,而该作业使用来自该缓存的数据,我不知道如何使其仅在缓存完成后开始所以我添加了这个延迟。
在我的工作中捕获并记录的任何其他异常都不会导致此问题。只有当线程运行时间过长并且 Windows 将其杀死时,它才会再次停止运行。
编辑:添加应用程序失败的行(至少这是堆栈跟踪告诉我的。
整个工作非常广泛,我不能在这里发布。
如您所见,我将一次要处理的条目数降低到 100,但即使将其设置为 50 或较低的数字,我最终也会收到错误,因为 GenerateData 表非常大,即使它的条目在被删除后被删除处理。
Edit2:事实上,代码在类的任何随机部分都失败了。它运行了大约 10 分钟,然后它就崩溃了。我只是被搞砸了吗?
c# - 如何在应用程序的其他部分获取正确的 SignalR 集线器?
我正在使用SignalR v2.41
旧版本,但我必须使用它,因为我也仅限于使用旧版本的 MVC。除此之外,我还使用FluentScheduler
定期向客户发送有针对性的消息。
问题是,我在集线器中保留了用户连接字典:
现在在 FluentScheduler 代码中,我需要获取连接列表的集线器,这样我就知道要发送什么到哪个连接:
问题是,hub
我使用的实例var hub = new DefaultHubManager(GlobalHost.DependencyResolver).ResolveHub("MyHub") as MyHub;
与客户端连接的实例不同,因为这个实例从来没有任何连接。
如何获得正确的集线器实例?
c# - Weeks() 在 FluentScheduler 中没有按预期工作
我正在设置每周一上午 10 点运行的工作:
然而,他显然是第一次跑,不再跑了。
我是否正确地进行了作业设置,或者此功能是否存在问题?你能帮助我吗?