草庐IT

MySQL并发事务

全部标签

c# - Hangfire 禁用并发执行 : What happens when the timeout expires?

根据Hangfire0.8.2announcementpost,Hangfire有一个DisableConcurrentExecution过滤器,当应用于一个方法时,它会阻止该方法的多个实例同时执行。DisableConcurrentExecution过滤器采用timeoutInSecondsint参数。来自链接文章中的示例:[DisableConcurrentExecution(timeoutInSeconds:10*60)]publicvoidSomeMethod(){//Operationsperformedinsideadistributedlock}我的问题是:给定一个正在等

c# - 为什么这个 web api Controller 不是并发的?

我有一个WebAPIController,其中包含以下方法:publicstringTester(){Thread.Sleep(2000);return"OK";}当我调用它10次(使用Fiddler)时,我预计所有10次调用都会在大约2秒后返回。然而,调用分别在2、4、8...20秒后返回。是什么阻止它同时运行?我该如何解决?常规Controller的行为是否与web-apiController相同? 最佳答案 您描述的内容与ASP.NETsession状态的默认行为相匹配,可以通过在web.config中禁用它来解决。Acces

c# - 一个只允许N个并发线程的函数

我有一个VisualStudio2008C#.NET3.5项目,其中一个类监听来自另一个多线程类的事件调用。我需要确保我的事件最多只允许同时访问10个线程。第11个线程应该阻塞,直到10个线程中的一个完成。myobj.SomeEvent+=OnSomeEvent;privatevoidOnSomeEvent(objectsender,MyEventArgsargs){//allowupto10threadssimultaneousaccess.Blockthe11ththread.using(SomeThreadLocklock=newSomeThreadLock(10)){DoUse

【Mysql报错】执行开源项目sql文件全部或部分报错的解决方法

适应情况当我们从github或者gitee上下载一些web开源项目的时候会附带sql文件用于导入数据库,有时候假如说用Navicat或者直接在命令行中使用source命令导入,会出现部分或者全部报错的情况,如下图解决方法情况一:编码格式不同1、在Navicat中选择并打开对应数据库之后,右击数据库名字点击打开新建查询2、在桌面上建立一个文本文档,之后点击左上角另存为,这时候关键点在于将下方的编码从原本的UTF-8调整为ANSI,并保存,此时这个记事本便成为了ANSI格式3、之后通过记事本的方式打开会报错的sql文件,将里面内容全部复制进,刚刚创建的那个修改为ANSI格式的记事本中4、之后,把那

[Etcd]分布式系统中如何使用乐观锁保证Mysql和Etcd数据最终一致性

问题描述在写业务代码时,很多时候需要保证数据存储在不同中间件中的一致性。以笔者为例,就遇到了需要将mysql中已存储的数据转存到etcd中,同时还要考虑到并发场景下如何保证数据最终一致性的问题。问题分析该问题形象地表示的话,可以将时间线展开如下服务A1更新db数据为{"key1":"valA","key2":"val_old"}服务A2读取db数据为{"key1":"valA","key2":"val_old"},并存入内存服务B1更新db数据为{"key1":"valA","key2":"valB"}服务B2读取db数据为{"key1":"valA","key2":"valB"},并存入内存

MySQL给查询加序号

阅读目录数据表MySQL给查询加序号解释说明相关知识点数据表DROPTABLEIFEXISTStb_score;CREATETABLEtb_score(idINT(11)NOTNULLauto_increment,useridVARCHAR(20)NOTNULLCOMMENT'用户id',subjectVARCHAR(20)COMMENT'科目',scoreDOUBLECOMMENT'成绩',PRIMARYKEY(id))ENGINE=INNODBDEFAULTCHARSET=utf8;INSERTINTOtb_score(userid,subject,score)VALUES('001','

c# - 消息在进行事务处理时未到达 MSMQ

我在本地机器上创建了一个私有(private)MSMQ。我正在使用以下C#代码将消息发送到队列。当我将队列更改为事务性队列时,消息未到达MSMQ。但是,在Send方法中没有抛出异常。我需要进行哪些更改才能使其正常工作?usingSystem;usingSystem.Messaging;usingSystem.Data;publicpartialclass_Default:System.Web.UI.Page{//Sharingviolationresultedfromqueuebeingopenalreadyforexclusivereceive.MessageQueuehelpReq

c# - 使用 RazorEngine 并发解析 Razor 模板

我在MVC3网络应用程序中使用RazorEngine库(http://razorengine.codeplex.com/)来使用Razor模板语言解析字符串(不是View)。一般来说,这工作正常。但是,当多个用户同时访问解析Razor模板的代码时,我偶尔会看到看起来像是在内部Razor编译器中发生的错误(请参阅下面的两个错误)。我在解释这些错误时遇到了问题,但我的猜测是我调用Razor编译器的方式不是并发安全的。这是Razor编译器的已知问题吗?普通RazorView(.cshtml)怎么不会遇到这个问题?有没有比将我的应用程序对Razor.Parse的所有调用包装在互斥锁中更好的解决

c# - 在 SqlBulkCopy 中使用 NHibernate 事务

我正在使用NHibernate存储一些数据,并且我需要插入大量数据作为此操作的一部分-即在同一事务中。代码如下所示:using(ISessionsession=NHibernateHelper.OpenSession())using(ITransactiontransaction=session.BeginTransaction()){session.SaveOrUpdate(something);//...SqlBulkCopybulkCopy=newSqlBulkCopy((SqlConnection)session.Connection,SqlBulkCopyOptions.Ch

c# - 无法执行事务操作,因为有待处理的请求在工作

背景我有一些代码可以打开一个sql连接,开始一个事务并对数据库执行一些操作。此代码从数据库创建一个对象(出队),获取一些值并将其保存回来。整个操作需要在事务中进行。所有代码在没有事务的情况下都能完美运行。using(varconnection=newSqlConnection(connectionString)){connection.Open();vartransaction=connection.BeginTransaction();try{varmyObject=foo.Dequeue(connection,transaction);varurl=myObj.GetFilePat