我目前正在考虑在一个 ASP.NET 项目中使用 Quartz 来安排任务。基本上,该应用允许用户创建可推送到设备的菜单。目前,他们只能选择在当前时间点推送菜单,但我想实现一个选项,将推送安排在以后的日期进行(例如,周二在 COB、周末、每周一早上 7 点重复执行的任务等等)。
我已经设法通过将作业存储在内存中来实现这一点,但是,这显然不是最佳做法,我想将这些作业存储在数据库中 - 这就是我目前有点卡住的地方......
我们有一个现有的数据库(在 SQL Server 中),我们也将在其中添加必要的表,但是 GitHub 上用于 Quartz 的脚本包含大量表……我想我的问题是,我实际需要创建的表的最小数量是多少?哪些表可以省略?我可以根据我的具体情况创建自己的表吗(如果可以,如何创建)?
总之:
- 在我的 ASP.NET 项目中使用 Quarts 来安排稍后执行的任务
- 这些作业有参数(设备 ID 等)
- 目前已实现并正在内存中存储,但希望将这些作业/触发器存储在数据库中
- Quartz 的脚本非常大,并且创建了大量的表
- 我实际需要的绝对最小/必要表格是什么?
如果您需要我提供更多详细信息,请随时询问:)
已实现内存调度 - 有效。目前正在寻找创建表前关于 Quartz DB 的信息。
提到的脚本创建了11 个表。
我个人不会称之为“大数字”,但我猜这取决于你数据库其余部分的大小,相比之下感觉它是否很大。如果你能省略其中任何一个表而不会导致 Quartz 出现功能问题和/或不得不避免使用某些功能,我会感到惊讶。除了可能直接询问开发人员之外,试图弄清楚哪些是必需的、哪些不是必需的所付出的努力感觉与收益不成比例(例如,将一个非常小的数字缩减到略小的数字)。
至于创建脚本本身,它只有 12KB,您只需运行一次,而不必存储它,因此它的大小实际上并不重要。
但是如果您真的觉得这些表会使您的主数据库变得混乱,您可以将它们放入第二个数据库中,然后您的应用程序就可以从中读取石英调度信息。
这可以让你更好地分离关注点,也可以稍微将其余数据与石英分离,并减少意外依赖的可能性。