SQL时间戳使用之任务循环

来源:互联网 发布:指弹中国淘宝店 编辑:程序博客网 时间:2024/05/20 01:09
USE [IwomTask]GO/****** Object:  StoredProcedure [dbo].[GetTaskList]    Script Date: 12/01/2012 02:00:30 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author:arvin-- Create date: 2012-11-21-- Description:获取任务的存储过程,获取未开始和正在进行中但已超过1分钟的任务(暂时调整为一分钟)-- =============================================ALTER PROCEDURE [dbo].[GetTaskList]@SearchEngineIDs varchar(8000)ASBEGINSET NOCOUNT ON;DECLARE @tempTable table(Task_ID int)DECLARE @timestampTable table(timemap bigint)DECLARE @sql varchar(max)SET @sql='SELECT MIN([timemap])FROM [dbo].[Open_Task]WHERE 1=1and IsCrawler=1and (taskState = 1 or (taskState = 2 and taskUpdateDate < dateadd(minute,-1,getdate()))) and SearchEngine_ID in ('+@SearchEngineIDs+')group by SearchEngine_ID'--获得最小的数据集INSERT INTO @timestampTable EXEC (@sql)--获得任务ID的数据集INSERT INTO @tempTableSELECT TK.ID FROM dbo.Open_Task AS TK ,@timestampTable AS TMWHERE TK.timemap=TM.timemap --更新状态位与时间UPDATE  [Open_Task] SET taskState = 2,taskUpdateDate = getdate()WHERE 1=1and [ID]in(SELECT Task_ID FROM @tempTable)--获得数据源SELECT [ProjectID] as Brand_ID    , 1 as GetDays   , [getItems] as GetItems   , [Searchkey] as KeyWord   ,[SearchType] as Task_Postion   ,''as Site_Domain   ,[ID] as Task_ID   ,[SearchEngine_ID] as SearchEngine_ID   ,'' as ExcludeDomain   ,[IncludeKey] as MustInclude   ,[NoContainKey] as NotInclude   ,1 as ResultOrder   ,[taskState] as Task_State   ,[connectionMark] as Task_Mark   ,'1900-01-01 00:00:00.000' as Task_Closetime   , [BeginDate] as Task_Begintime   ,0 as Task_Seg   ,0 as Task_Preview    ,[UserID] as userid   ,[KeyID] as KeyIDFROM [dbo].[Open_Task]WHERE 1=1and [ID]in(SELECT Task_ID FROM @tempTable)END