내 현재 사이트는 처음으로 누군가가 응용 프로그램에 로그인 할 때 특정 사람들에게 메시지를 남기도록 설정됩니다. 남은 메시지 수는 1000에서 10000 사이이며, 각각은 쿼리가되고 트랜잭션 문에서는 모든 쿼리가 될 수 있습니다.ASP.NET에서의 스레딩 및 성능에 미치는 영향
예, 이것이 제 질문이 아닌 가난한 디자인처럼 보입니다.
현재 사용자가 로그인하면 서버는 사용자가 실제로 어떤 작업을 수행하기 전에 모든 쿼리를 완료해야합니다. 내 말은 사용자가 타임 아웃이 시작될 때까지 로그인 화면을보고 페이지를 다시 설정한다는 것입니다. 최근에 우리는 최대 30 분 동안 기다렸습니다. (!)
사용자가 웹 사이트에 로그인하여 작업을 수행하고 해당 작업을 보거나 삭제할 수 있도록 스레드에이 프로세스를 넣으 려합니다. 메시지 전달자에 의해 방해받지 않는 메시지.
제 질문은이 프로세스를 처리하기 위해 새 스레드를 돌리기 만하면됩니까 (예 : 전달자가 메시지를 남기는 동안 사용자가 작업 할 수 있도록 허용)? 또한 스레드를 회전 시켜도 동일한 서버의 다른 웹 응용 프로그램에 영향을 줍니까? KM의 의견
간체 스키마를 기반으로
편집 :
작업 테이블 :
TaskID StartDate EndDate PercentComplete TSK1 4/17/09 5/17/09 60 TSK2 3/19/09 3/29/09 80 TSK3 1/1/08 2/9/09 100
할당 테이블 :
TaskID ResourceID TSK1 111 TSK1 222 TSK2 222 TSK2 333 TSK2 444 TSK3 111 TSK3 333
메시지 테이블 스키마 :
Subject Receiver Sender Content Overdue Task 111 000 Task TSK1 is overdue. Overdue Task 222 000 Task TSK1 is overdue. Overdue Task 222 000 Task TSK2 is overdue. Overdue Task 333 000 Task TSK2 is overdue. Overdue Task 444 000 Task TSK2 is overdue.
따라서 코드는 모든 사람에게 지연된 작업 (예 : 오늘보다 끝난 날짜와! = 100 % 완료) 그들에게 그와 같은 메시지를 남겨주세요.
실제 문제는 내가 선택한 쿼리를 사용하여 데이터베이스에서 지연된 작업에 할당 된 사람을 얻는 것입니다. C# 코드를 사용하여 메시지를 삽입하기 전에 데이터베이스를 호출하기 전에 메시지와 트랜잭션을 작성합니다.
메시지를 작업에 참여시키는 방법에 대한 정보를 제공하십시오. –
메시지가 작업에 참여하지 않습니다. 메시지 본문에 넣을 수 있도록 작업 ID 만 필요합니다. 메시지를 읽는 사람이기 때문에 메시지에 가입해야하는 리소스입니다. –