zoukankan
html css js c++ java
cs_EmailQueue_Failure///cs_Emails_Dequeue///cs_Emails_Enqueue
cs_EmailQueue_Failure
ALTER
proc
dbo.cs_EmailQueue_Failure
@EmailID
uniqueidentifier
,
@FailureInterval
int
,
@MaxNumberOfTries
int
as
SET
Transaction
Isolation
Level
Read
UNCOMMITTED
/**/
/*
设置事务隔离级别,Read UNCOMMITTED 执行脏读或 0 级隔离锁定,这表示不发出共享锁,
也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更
改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有
语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。
*/
declare
@NumberOfTries
int
--
重试次数
select
@NumberOfTries
=
NumberOfTries
+
1
from
cs_EmailQueue
where
EmailID
=
@EmailID
if
@NumberOfTries
<=
@MaxNumberOfTries
begin
--
如果重试次数小于最大次数,更新重试次数和第二次重试次数
update
cs_EmailQueue
set
NumberOfTries
=
@NumberOfTries
,
NextTryTime
=
dateadd
(minute,
@NumberOfTries
*
@FailureInterval
,
getdate
())
where
EmailID
=
@EmailID
end
else
begin
--
如果重试次数超过限制,删除此条邮件
delete
from
cs_EmailQueue
where
EmailID
=
@EmailID
end
GO
cs_Emails_Dequeue
ALTER
PROCEDURE
[
dbo
]
.cs_Emails_Dequeue
(
@SettingsID
int
)
AS
SET
Transaction
Isolation
Level
Read
UNCOMMITTED
/**/
/*
设置事务隔离级别,Read UNCOMMITTED 执行脏读或 0 级隔离锁定,这表示不发出共享锁,
也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更
改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有
语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。
*/
BEGIN
SELECT
*
FROM
cs_EmailQueue
Where
SettingsID
=
@SettingsID
and
NextTryTime
<
getdate
()
END
/**/
/*
列出最后重试发送时间小于当前时间的所有邮件
*/
GO
cs_Emails_Enqueue
ALTER
PROCEDURE
[
dbo
]
.cs_Emails_Enqueue
(
@EmailTo
nvarchar
(
2000
),
@EmailCc
ntext
,
@EmailBcc
ntext
,
@EmailFrom
nvarchar
(
256
),
@EmailSubject
nvarchar
(
1024
),
@EmailBody
ntext
,
@EmailPriority
int
,
@EmailBodyFormat
int
,
@SettingsID
int
)
AS
SET
Transaction
Isolation
Level
Read
UNCOMMITTED
/**/
/*
设置事务隔离级别,Read UNCOMMITTED 执行脏读或 0 级隔离锁定,这表示不发出共享锁,
也不接受排它锁。当设置该选项时,可以对数据执行未提交读或脏读;在事务结束前可以更
改数据内的数值,行也可以出现在数据集中或从数据集消失。该选项的作用与在事务内所有
语句中的所有表上设置 NOLOCK 相同。这是四个隔离级别中限制最小的级别。
*/
BEGIN
INSERT
INTO
cs_EmailQueue
(
emailTo,
emailCc,
emailBcc,
EmailFrom,
EmailSubject,
EmailBody,
emailPriority,
emailBodyFormat,
SettingsID
)
VALUES
(
@EmailTo
,
@EmailCc
,
@EmailBcc
,
@EmailFrom
,
@EmailSubject
,
@EmailBody
,
@EmailPriority
,
@EmailBodyFormat
,
@SettingsID
)
/**/
/*
插入新的邮件到邮件队列中
*/
END
GO
查看全文
相关阅读:
二维数组输出10行杨辉三角
二维数组的练习----求和
数组的异常及处理
二维数组在内存中的结构
Ubuntu系统中安装Mercurial 以支持hg
什么是插补、直线插补、联动与插补
压力表(负压表...)
常用接近开关的原理和分类
VMware Ubuntu安装详细过程
Redis+Spring缓存实例(windows环境,附实例源码及详解)
原文地址:https://www.cnblogs.com/ruanbl/p/494905.html
最新文章
#pragma once
linux统计文件夹某一些文件的大小总和
va_start、va_end、va_list的使用
EWOULDBLOCK = EAGAIN
html的body内标签之label标签和fieldset标签
html的body内标签之图片及表格
html的body内标签之超链接
html的body内标签之多行文本及下拉框
html的body内标签之input系列2
文字笔记
热门文章
html的body内标签之input系列1
Body标签
html的head内标签
前端简介
类的对象内存解析
创建Java类并实例化的基本过程
面向对象的基本理论
数组的排序算法
数组的简单算法
数组复制的误区
Copyright © 2011-2022 走看看