mysql의 단독 잠금에 단독 효과가 있는지 테스트를 해봤습니다.
테스트 1: 명령줄에서 배타적 잠금 테스트먼저 명령줄에서 테스트하고 두 개의 명령줄 열기먼저 명령줄 1에서 배타적 잠금 추가:laravel에서 배타적 잠금을 테스트해 보겠습니다.그런 다음 명령줄 2에서 액세스 테스트 :
명령줄 1에서 커밋이 완료된 후 명령줄 2에서도 실행 결과가 실행되는 것을 확인할 수 있습니다.
그러므로 명령줄에서 배타적 잠금을 테스트하는 데에는 문제가 없습니다.
테스트 2: laravel 컨트롤러 방법에서 배타적 잠금 테스트
두 경로:
Route::get('/locktest1','LockController@ LockTest1' );
Route::get('/locktest2','LockController@LockTest2');
LockTest1
및 컨트롤러 LockTest2의code>이 두 가지 방법의 내용은 동일합니다.
DB::beginTransaction(); // 开启事务 $goods = Goods::lockForUpdate()->first(); print_r($goods);먼저
/locktest1
경로에 접속하여 정상적으로 데이터를 출력해 보세요. 개인적으로 현재로서는 거래가 종료되지 않은 것으로 추측합니다. 데이터 테이블에 액세스하기 위한 또 다른 요청이므로 차단되어야 합니다.
여기서/locktest2
에 접속하면 데이터가 정상적으로 출력되는군요. 왜 차단 효과가 없나요?Route::get('/locktest1','LockController@LockTest1');
Route::get('/locktest2','LockController@LockTest2');
控制器中的LockTest1
和LockTest2
这两个方法内容都一样:DB::beginTransaction(); // 开启事务 $goods = Goods::lockForUpdate()->first(); print_r($goods);sleep(10);echo 'ddd';先访问路由
/locktest1
,正常打印出数据,个人猜想此时事务没有关闭,如果再有访问数据表的请求,应该是阻塞的。
所以在此访问/locktest2
,结果还是正常打印出数据,为什么没有产生阻塞效果呢?
测试3:laravel控制器方法与命令行混合测试排他锁
1、先在命令行里开启事务添加排他锁,同测试1里的命令行1的操作;
然后访问路由/locktest1
,页面一直运行中,说明查询数据存在阻塞;
最后命令行里commit提交。
2、先访问路由/locktest1
,正常打印出数据;
然后在命令行里开启事务添加排他锁,同测试1里的命令行1的操作,发现正常查询出数据,没有阻塞;说明laravel的控制器方法里的排他锁操作确实没有成功。
总结:为什么laravel的lockForUpdate()没有效果呢,还是说laravel控制器方法执行完毕后,会自动结束事务才导致没有阻塞效果的?
于是,再次做下面测试:
将路由1的控制器方法里加了一个sleep()方法:
然后,访问路由1/locktest1
,页面在等待刷新;再访问路由2/locktest2
,页面也在等待刷新,说明应该是产生数据阻塞了,因为路由2中没有sleep(),正常情况下是立即执行的。
10秒过后,/locktest1
页面打印出数据,同时/locktest2
테스트 3: Laravel 컨트롤러 방법 및 명령줄 혼합 테스트 독점 잠금
1 먼저 명령줄에서 트랜잭션을 열어 독점 잠금을 추가합니다. 테스트 1의 명령줄 1 작업과 동일합니다.
그런 다음/locktest1
경로에 액세스하면 페이지가 실행 중이며 쿼리 데이터가 차단되었음을 나타냅니다. 마지막으로 명령줄에서 커밋합니다. 2. 먼저 /locktest1
경로에 액세스하여 데이터를 정상적으로 인쇄합니다. 그런 다음 명령줄에서 트랜잭션을 열어 배타적 잠금을 추가합니다. 데이터가 정상적으로 쿼리됩니다. 차단이 없다는 것은 Laravel의 컨트롤러 메서드에서 단독 잠금 작업이 성공하지 못했음을 의미합니다.
/locktest1
에 액세스하면 페이지가 대기 중입니다. 경로 2 /locktest2
에 액세스할 때 페이지도 새로 고쳐지기를 기다리고 있으며 이는 경로 2에 sleep()이 없기 때문에 데이터가 차단되어야 함을 나타내며 다음에서 즉시 실행됩니다. 정상적인 상황. 🎜10초 후 /locktest1
페이지에서 데이터가 출력되고, /locktest2
페이지에서도 데이터가 출력됩니다. 🎜🎜🎜🎜 이를 통해 위 테스트 3에서는 컨트롤러 메소드 종료 후 트랜잭션 자동 종료로 인해 발생하는 차단 효과가 발생하지 않았습니다. 🎜🎜위 내용은 개인적인 분석입니다. 혹시 지나가시는 사부님 계시다면 메시지 남겨주시면 정답 알려드리겠습니다! 🎜🎜더 많은 프로그래밍 관련 지식을 보려면 🎜프로그래밍 교육🎜을 방문하세요! ! 🎜위 내용은 laravel 독점 잠금 lockForUpdate() 사용 문제 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

분산 팀원이 도구 및 리소스에 공정한 액세스 권한을 갖도록하는 방법 : 1) 비동기 비디오 또는 텍스트 업데이트와 같은 저 대역폭 대안 사용, 연결 문제를 해결하기 위해; 2) 코어 중첩 근무 시간을 설정하고 시간대 차이를 관리하기위한 유연한 근무 시간을 제공합니다. 3) 번역 기능과 문화 인식 훈련을 통해 다양한 문화적 요구에 적응합니다. 이러한 전략은 포용적이고 효율적인 원격 작업 환경을 조성하는 데 도움이됩니다.

forenhancingremotecollaboration, aninstantmessagingtoolmusthave : 1) 신뢰성이 연속적으로 해당하는 경우, 2) anintuitiveuserinterinterfaceynavigation, 3) Real-TimenotificationStayupdated, 4) SeamlessFilesharingforefficialDocumentExchange, 5) 통합

ThebiggestchallengeofmanagingDistributedTeamsiscommunication.toaddressthis, usetoolslikeslack, Zoom 및 Github; setClearExectations; FoscertrustandAutonomy; ubstractAnchronousworkpatterns; andintegratestaskmanagement withCommunicationPlatformsForforforforforforforforforforfforforfforforfforforfforforfforfforfforfforforfforforfforforfforforfforforforfforfforforfforforfforforformital

Laravel의 최신 버전은 다음을 포함하여 보안을 크게 향상 시켰습니다. 1.보다 강력한 토큰 검증 메커니즘을 통해 CSRF 보호 향상; 2. 향상된 쿼리 구성 방법을 통해 개선 된 SQL 주입 보호; 3. 사용자 데이터 보안을 보장하기위한 더 나은 세션 암호화; 4. 더 미세한 세분화 된 사용자 인증 및 MFA (Multi-Factor Authentication)를 지원하는 인증 시스템 향상.

Tonavigateschedulingconflictsinaglobalworkforce, usetechnology, 공감 및 전략적 계획 : 1) EmployToolsworldtimebuddyorcalendlyforscheduling; 2) rotatemeettimeettimeettimeStoensureFairness; 3) SpuctionCoreHourOverlap;

Laravel Full-Stack Development에서 API 및 프론트 엔드 로직을 관리하는 효과적인 방법은 다음과 같습니다. 1) 편안한 컨트롤러 및 리소스 라우팅 관리 API 사용; 2) 블레이드 템플릿 및 vue.js 또는 반응을 통한 프론트 엔드 로직 처리; 3) API 버전화 및 페이징을 통한 성능 최적화; 4) 유지 관리 및 확장 성을 보장하기 위해 백엔드 및 프론트 엔드 논리의 분리를 유지합니다.

TotackleculturalIntricaciesindipributedTeams, Fosteranenvernmentcelebratingdifferences, bemindfulofcommunication, andusetoolsforclarity.1) 구현 culturalexChangessessionStosharestoriesandtraditions.2) AdvernCommunicationMethodStosuitculturalPreference

toAssesstheeffectiveIneSofRemoteCommunication, FocusOn : 1) indagementMetricsLikemEsageFrequencyAndResponSetime, 2) SentimentAnalySistoGaUgeEmoptionalTone, 3) MeetingEfficivenitesThrougAntSendAndActionItems, and4) NetworkAnalysistOndStandCommiticaticPA


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기
