我正在使用VS 2008(C#)开发一个网站。我目前的任务是开发一个应该执行以下任务的模块:
NewUsers18Jan2009.xml
)。为了实现这一目标,以下哪一项最合适?
有没有可用的样品来证明这一点?
答案 0 :(得分:3)
将此任务与您的网站分开。一切网站都通过网络服务器。将逻辑放入类库(因此,如果您需要进行广告按需检查,将来可以使用它),并在控制台应用程序中使用此类。使用Windows“计划任务”功能并将此控制台应用程序设置为每15分钟运行一次。这比通过IIS运行计划任务要好得多。
答案 1 :(得分:3)
听起来你的任务没有任何UI部分。如果是这种情况,请使用Windows服务或计划的应用程序。我会选择一项服务,因为它更容易远程控制。
我在这里看不到与网站的连接......
答案 2 :(得分:2)
为什么世界上管理员需要每15分钟获得一次?管理不善!
我只需在用户表中的每个条目上添加一个时间戳,然后创建一个快速报告,以便管理员在需要时查询数据。
答案 3 :(得分:1)
我认为你的做法是错误的。你应该做两件事之一:
答案 4 :(得分:1)
Windows服务可以为您提供良好的解决方案 - 或者如果您使用的是SQL Server,则可以从SQL代理作业中触发此类处理。
如果您希望代码成为Web应用程序的“一部分”,您可以随时从心跳页面触发逻辑,该页面在调用URL时运行您的任务 - 然后您可以从服务或代理工作。
答案 5 :(得分:1)
最简单的方法是在Application_Start上的应用程序中创建一个System.Threading.Timer,并将其放在某个静态字段中,这样就不会收集它。这样,您可以让您的Web应用程序轮询数据库,而无需外部过程。当然,如果您的应用程序出现故障,计时器也会出现故 对于轮询逻辑,只需保留最后一个userId(如果您有增量策略)并通过过滤WHERE id>检查新添加的用户。 lastId。
答案 6 :(得分:0)
创建一个新表(或文本文件),用于存储上次执行“新用户导出”或另外查找上次导出文件的修改/创建日期。当脚本命中数据库时,执行SQL命令以在上次导出后创建所有用户。为每个用户吐出新的XML。
将此脚本设置为以Windows计划任务/ cron作业/甚至是数据库触发器运行。
答案 7 :(得分:0)
由于您似乎将给定日期的所有用户添加到单个XML文件中(根据您的帖子),为什么每15分钟需要执行此操作?午夜过后这样做不够吗?
当你这样做时,最好是在Windows服务中(如果它必须每15分钟运行一次)或者在一个命令行应用程序中,该应用程序计划在例如0:15小时,您只需要检查用户的“注册”日期,如果在过去一天有任何注册,您可以将它们添加到列表中并将该列表导出到XML文件的末尾。处理表格。
马克
答案 8 :(得分:0)
虽然我也投票支持创建Windows服务来为您执行此功能,但我能想到的最简单的方法是在您的“用户”表上设置一个触发器,当您创建xml文件时用户已插入。
答案 9 :(得分:0)
我是Chuck的第二个答案 - 你可以使用XML查询从数据库中提取这些数据并直接发送,无需在系统上创建文件。