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
查看全文
相关阅读:
go语言xrom使用
go语言算法
go语言递归
go语言map(字典)
GO语言实现小技巧
偶遇递归树
Python中字典对象根据字典某一个key和values去重
python中将字符串格式转字典
Azure媒体服务的Apple FairPlay流功能正式上线
SVG裁剪和平移的顺序
原文地址:https://www.cnblogs.com/ruanbl/p/494905.html
最新文章
面试题整理
cuda8.0升级至cuda9.0
maskrcnn-benchmark安装及常见错误
Anaconda3安装以及常用命令
[Python] ASCII码与字符相互转换
[caffe] 史上最透彻的lenet.prototxt解析
ubuntu修改主机名
0000: 计算机视觉会议&期刊
[锦囊] 无法发起与 packages.cloud.google.com:80 (2404:6800:4005:801::200e) 的连接
[cs231n][Module 1: Neural Networks] Linear Classification
热门文章
JavaScript 基础语法
css常用属性和值
长度与颜色单位
css三种引入方式
标签分类
html常用标签
固定模板详解
前端三剑客了解
前端概述
Mysql: pymysql 模块
Copyright © 2011-2022 走看看