Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何经常检查数据库表?_C#_Database_Real Time_Sql Job - Fatal编程技术网

C# 如何经常检查数据库表?

C# 如何经常检查数据库表?,c#,database,real-time,sql-job,C#,Database,Real Time,Sql Job,我正在开发一个升级系统,在这个系统中,用户只要达到一定的分数,就会升级,比如说当他/她获得100分时,就会升级到2级 为此,我能够“实时”进行水准测量,因为我将检查是否有任何新的点添加到表中,系统将计算他/她是否符合标准 但现在,有一个降级场景,如果用户在当前级别到期之前(用到期日期和时间表示)未能升级到下一个级别,则用户将被降级。如果我将所有的级别到期时间设置为午夜(12点),并运行一个作业扫描所有用户,检查是否有任何用户必须被降级,我就能够做到这一点 我的问题是,如果我允许级别到期时间不仅是

我正在开发一个升级系统,在这个系统中,用户只要达到一定的分数,就会升级,比如说当他/她获得100分时,就会升级到2级

为此,我能够“实时”进行水准测量,因为我将检查是否有任何新的点添加到表中,系统将计算他/她是否符合标准

但现在,有一个降级场景,如果用户在当前级别到期之前(用到期日期和时间表示)未能升级到下一个级别,则用户将被降级。如果我将所有的级别到期时间设置为午夜(12点),并运行一个作业扫描所有用户,检查是否有任何用户必须被降级,我就能够做到这一点

我的问题是,如果我允许级别到期时间不仅是午夜,而且是按照他/她升级的时间,说如果用户在2016/3/24上午9:30升级到级别2,那么级别到期时间将是2016/4/24上午9:30

在这种情况下,如果该用户当时未登录或未获得任何新积分,我如何检查该用户是否应降级?我无法设置任何作业,因为所有用户都可以有不同的到期时间


提前感谢。

我在一个商业供应系统中遇到过类似的情况,用户在30/60/90天不活动后应该被标记。对于我在数据库中创建的每个标志,当扫描记录时(对表进行选择),它将返回一个布尔值(位),该布尔值是针对当前日期计算的,无论用户是否在这些不同的时间范围内登录


您可以提供类似的逻辑,方法是将上次升级时间包含为一列,然后使用一个单独的列应用业务逻辑,以查看它们是否已升级…等等

我在一个商业供应系统中也遇到过类似的情况,用户在30/60/90天不活动后应该被标记。对于我在数据库中创建的每个标志,当扫描记录时(对表进行选择),它将返回一个布尔值(位),该布尔值是针对当前日期计算的,无论用户是否在这些不同的时间范围内登录


您可以提供类似的逻辑,方法是将上次升级时间包含为一列,然后使用一个单独的列应用业务逻辑,以查看它们是否已升级…等等

结合使用以下技术:

1) 您确实需要一个定期计划的作业(运行频率很高,例如每10分钟甚至每小时一次),该作业扫描自上次运行作业以来已过的新到期时间(您可以为此将作业执行时间存储在单独的表中)。顺便说一句,此计划作业还可以处理需要无人参与处理的任何其他事件(即,无需用户登录)

2) 当用户登录时,请明确检查他们的级别、有效期以及您需要的任何其他信息。这将确保即使作业最近没有运行,您也能同步(接近实时)准确地检查它们的状态


这些技术的组合应该允许您处理任何类似的场景。

使用以下技术组合:

1) 您确实需要一个定期计划的作业(运行频率很高,例如每10分钟甚至每小时一次),该作业扫描自上次运行作业以来已过的新到期时间(您可以为此将作业执行时间存储在单独的表中)。顺便说一句,此计划作业还可以处理需要无人参与处理的任何其他事件(即,无需用户登录)

2) 当用户登录时,请明确检查他们的级别、有效期以及您需要的任何其他信息。这将确保即使作业最近没有运行,您也能同步(接近实时)准确地检查它们的状态

这些技术的结合应该允许您处理任何类似的场景