繁体   English   中英

Quartz .Net体系结构问题

[英]Quartz .Net architecture question

这是场景。 我有一个由于多种原因可以与服务器保持稳定连接的应用程序。 我需要从Web服务器获取或发布到Web服务器的三组常规对象。

  1. 业务数据对象。 这实际上是从服务器下拉到客户端计算机并存储在本地数据库中的数据。 如果用户更新其本地计算机上的数据,则会对其进行标记并需要发送以与服务器同步。 大约有6个自定义类,它们将需要提取数据并将数据发送到服务器(需要时)。

  2. 文件。 就像它指出的那样,这种同步是针对文件的。 文件可以上传到服务器。 但更重要的是,可以将文件下载到客户端。 将有从服务器自动发送的文件和其他需要的文件。

  3. 连接/登录查询。 这些同步将从服务器中获取用户信息,并定期检查更新的信息并验证权限。 还需要进行检查以确保应用程序已连接到服务器,并且如果连接断开,则应进行适当处理。

我对Quartz并不陌生,正在尝试思考设置这三种我想发生的同步的最佳方法。 我有几个问题。

  1. 如果我想要多个线程池,我是否只想创建3个单独的调度程序工厂? 我将如何使用配置来完成此操作,或者需要在工厂的每次实例化之前对其进行编码以显式设置Quartz属性?

  2. 有时业务数据对象同步将是最重的负载。 当用户首次登录或被分配其他权限时,可能要求他们从服务器下载多达1万个对象/记录。 这种情况很少发生,理想情况下,用户可以连接,数据全部下载,并且5-10分钟后,他们可以将应用程序用于其目的。 这种同步将需要不断检查服务器以查看其是否为新数据,并监视本地数据以查看是否需要将新数据发送到服务器。 让工厂使用自己的线程池(例如10个线程)来处理所有这些问题是否有意义?

归根结底,我只是想弄清楚如何初步规划整个过程,并将各部分分开以轻松地进行管理并正确地进行。 这是一个概念证明,任何帮助将不胜感激。 请随时批评以上任何内容。

谢谢!

您可以通过实现Quartz.Spi.IThreadPool插入自定义线程池。 调度程序只有一个IThreadPool ,但是您可以屏蔽该单个接口后面的多个线程池,尽管实现需要有关被调度的作业的信息才能将它们派生到每个线程。

默认实现Quartz.Simpl.SimpleThreadPool具有固定(可配置)数量的线程,所有线程都具有相同(可配置)优先级。

否则,您可能会说多个调度程序。 这比较容易,您只有多个独立的调度程序工厂,但它们不应共享任何状态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM