안녕하세요. 강의를 보던중 의문이 생겨 질문 드립니다. JpaRepository를 만들면 정의하지 않아도 findById는 기본적으로 존재 하는 것으로 알고 있습니다. findByIdWithPessimisticLock를 사용한 매서드가 락을 반납하기 전에 다른 매서드에서 findById을 이용한 update가 발생하게 된다면 findById가 Lock을 감지하는지가 궁금합니다. public interface StockRepository extends JpaRepository<Stock, Long> { @Lock(value = LockModeType. PESSIMISTIC_WRITE ) @Query("select s from Stock s where s.id =:id") Stock findByIdWithPessimisticLock(Long id); }
파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
아래 질문자님께서도 글을 남기셨듯, 저 또한 이러한 에러가 계속 발생합니다. pydantic.errors.PydanticImportError: pydantic.datetime_parse:parse_datetime has been removed in V2. 이 문제는 odmantic import 과정에서 발생하고 있으며. V1에서는 가능했지만 V2에서 제거되면서 발생되는 문제라고 생각됩니다. odmantic의 버전을 낮춰보았으나 반응이 없었고, pydantic의 현 버전이 2.3이기에 1.10.12버전으로 낮춰보아도 현 문제가 지속되고 있습니다. 교육자료의 requirement.txt를 열어봐도 사용된 라이브러리만 명시되어 있으뿐 버전에 대한 부분은 없어서 진행에 어려움을 겪고 있습니다. 다시 한번 도움을 부탁드립니다. 감사합니다!
고수가 되는 파이썬 : 동시성과 병렬성 문법 배우기 Feat. 멀티스레딩 vs 멀티프로세싱 (Inflearn Original)
셀레니움 멀티프로세싱하면 잘 돌아갑니다. 하지만 from seleniumwire import webdriver 셀레니움와이어를 멀티 프로세싱으로 돌리게 되면 [37052:24192:0901/174906.460:ERROR:cert_verify_proc_builtin.cc(701)] CertVerifyProcBuiltin for z.cdp-dev.cnn.com failed: ----- Certificate i=1 (CN=Selenium Wire CA) ----- ERROR: No matching issuer found 위와 같은 에러 문구가 나네요 구글링해도 관련 내용이 안보여서 질문 남겨봅니다.
안녕하세요 강사님. 강의 잘 듣고 있습니다. 궁금한 부분이 있는데요. lettuce 클라이언트는 락 획득을 스핀락을 돌면서 자체적으로 얻어온다고했는데 그렇다면 어떻게 애플리케이션의 비니지스 코드까지 락을 얻지못했다는 값을 넘겨주나요? while(!redisLockRepository.lock(id)) 구문이 어떻게 실행될 수 있는지 모르겠습니다. 왜냐하면 위에서 말한것처럼 lettuce 클라이언트에서 락을 얻기 위해 내부적으로 계속 스핀락을 돌다가 결국 얻어내서 true 를 리턴할것으로 예상되기 때문인데요. 답변 부탁드리겠습니다
강의를 듣고 몇 가지 테스트의 시간을 재보고 있습니다. 예를 들어서 해당 제품의 갯수가 1000개이고 동시에 접속한 10만명이 해당 제품 구매를 클릭한 경우, @BeforeEach public void before () { stockRepository.saveAndFlush(new Stock(1L, 1000L)); } 위의 코드로 1000개의 제품을 미리 등록을 하였는데 10만명의 사용자의 경우 threadCount를 10만으로 해놓으면 되는 걸까요? 아니면 쓰레드 풀을 Executors. newFixedThreadPool (100000)으로 해두면 되는 걸까요? 또 그렇게 Stock의 갯수를 늘리게 되었을 때에 비관적 락의 경우 SQL Error: 0, SQLState: null 이런 에러가 발생합니다. 구글링 했을 때에 hikari에서 연결 가능한 커넥션이 없어서 그런다는데 hikari pool size를 늘리면 되는 문제인가요?
사용자가 많지 않고 일반 커뮤니티 같은 경우에는 좋아요 개수가 많이 몰릴 일이 없다고 생각해서 PessimisticLock을 적용하려고 합니다. 제가 생각했을 땐 인스타나 그런 대규모 사이트의 좋아요는 PessimisticLock을 적용하면 성능 저하가 뚜렷하게 나타난다고 생각합니다. -> 레디스 사용이 베스트 토이프로젝트 규모의 SNS는 PessimisticLock으로 구현하는게 비용도 들지 않고 데이터 정합성이 보장된다고 판단했습니다. 혹시 제가 틀린 거나 더 나은 방법이 있을까요? 항상 감사합니다! 아 추가로 newFixedThreadPool은 왜 32로 설정하는지도 궁금합니다!!
파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 해당 강의에서 img_downloader 함수를 정의할 때 aiofiles의 용도가 무엇인가요? file.write을 할때 로컬에 저장하는것 같은데, 이때도 await을 사용하는 이유가 무엇인가요?
트랜잭션이 걸려있는 경우에 stock.decrease(quantity)만 해줘도 영속성 컨텍스트에 있는 값을 가져와서 재고 감소가 가능한 걸로 아는데 왜 save를 한 번 더 해주는 건지 이유가 궁금합니다. 그리고 위에 제가 이해한 영속성 컨텍스트에 대한 내용도 맞을까요?
WslRegisterDistribution failed with error: 0x80370102 Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS. For information please visit https://aka.ms/enablevirtualization 이 에러가 뜨고 윈도우에 설치시 발생하는 오류(wslregisterdistribution failed with error: 0x80370102) 해결 ( codeit.kr ) 이 페이지에서 하라는대로 다 하고 bios 모드에서도 svm을 enabled 로 설정해주엇는데도 계속 같은 에러가 반복됩니다. 어떻게 해결할 수 있나요
안녕하세요 강의를 듣던 중 궁금함이 생겨서 질문드립니다. msa 환경에서, 레디스를 사용할 수 있는 상황이라면 레디스를 사용하는 것이 제일 좋은 방법인가요? 아니면 db락을 사용하는 것이 더 좋을 수도 있나요? 만약 db락을 사용하는 것이 더 좋을 수도 있다면, 그 상황은 어떤 상황이 있을까요?
멀티 프로세싱과 멀티 프로그래밍의 개념이 헷갈리네요.. 구글링을 통해 다수의 글을 확인했을 때, 수업 내용에서 말한 하나의 CPU에서 시분할을 통해 여러 프로세스의 실행하는 것을 멀티 프로그래밍이라 정의했습니다. 또한 멀티 프로세싱은 여러 개의 cpu가 서로 협력하여 여러 프로세스를 실행한다고 정의되어 있습니다. 수업 내용 그대로 이해하면 될 지 모호하네요.
OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 2023-08-02T14:04:15.469+09:00 DEBUG 24388 --- [ main] org.hibernate.SQL : insert into stock (product_id,quantity) values (?,?) Hibernate: insert into stock (product_id,quantity) values (?,?) 2023-08-02T14:04:15.723+09:00 DEBUG 24388 --- [ main] org.hibernate.SQL : select s1_0.id,s1_0.product_id,s1_0.quantity from stock s1_0 where s1_0.id=? Hibernate: select s1_0.id,s1_0.product_id,s1_0.quantity from stock s1_0 where s1_0.id=? 2023-08-02T14:04:15.788+09:00 DEBUG 24388 --- [ main] org.hibernate.SQL : select s1_0.id,s1_0.product_id,s1_0.quantity from stock s1_0 Hibernate: select s1_0.id,s1_0.product_id,s1_0.quantity from stock s1_0 2023-08-02T14:04:15.802+09:00 DEBUG 24388 --- [ main] org.hibernate.SQL : delete from stock where id=? Hibernate: delete from stock where id=? org.opentest4j.AssertionFailedError: Expected :0 Actual :100 이유가 뭔지 잘 모르겠습니다. 코드도 아무리 봐도 같습니다 ㅠㅠ