반응형
비동기 프로그래밍 및 Azure 함수입니다.
Azure 기능 "성능 고려 사항" 파트의 "비동기 코드를 사용하되 통화 차단을 방지하십시오"에서 다음과 같이 설명합니다.async
프로그래밍은 성능 향상을 위해 권장되는 실습입니다.하지만, 그것을 사용하는 가장 좋은 방법은 무엇일까요?예를 들어, 시나리오에서 다음과 같은 서비스 버스 트리거가 있습니다.
public static void Run(
[ServiceBusTrigger("topicname", "subname", AccessRights.Manage,
Connection = "TopicConnection")]string message, TraceWriter log)
{
try {
log.Info($"C# ServiceBus topic trigger function processed message: {message}");
Task.Run(() => PushToDb(message, log));
}
catch(Exception ex)
{
log.Info($"Exception found {ex.Message}");
}
}
위 코드에서, 나는 전화를 합니다.PushToDb
방법async
그러나 백그라운드에서 실행되므로 Function 런타임은 메시지가 성공적으로 소비되었다고 가정하고 메시지를 완료합니다.만약에요?PushToDb
메서드에서 예외가 발생합니까?실행 시 완료되지 않은 대신 버려야 한다는 사실을 어떻게 알 수 있습니까?
사용하려고 합니다.async
퍼포먼스를 위해서 최대한 많이요.
함수를 비동기화할 수 있습니다.
public static async Task Run(
[ServiceBusTrigger("topicname", "subname", AccessRights.Manage, Connection = "TopicConnection")]string message,
TraceWriter log)
{
try
{
log.Info($"C# ServiceBus topic trigger function processed message: {message}");
await PushToDb(message, log);
}
catch(Exception ex)
{
log.Info($"Exception found {ex.Message}");
}
}
함수 런타임에서는 함수를 비동기화하고 작업을 반환할 수 있습니다.
이 경우 정상적으로 예외를 처리할 수 있도록 통화만 기다리면 됩니다.
언급URL : https://stackoverflow.com/questions/48339829/async-programming-and-azure-functions 입니다.
반응형
'programing' 카테고리의 다른 글
SSMS 2016 Azure SQL v12 bacpac 가져오기 오류: 암호가 없는 마스터 키는 지원되지 않습니다. (0) | 2023.04.25 |
---|---|
Git - 치명적입니다.'/path/my_project/.git/index.lock'을(를) 생성할 수 없습니다.파일이 있습니다. (0) | 2023.04.25 |
"ObjectContext 인스턴스가 삭제되어 연결이 필요한 작업에 더 이상 사용할 수 없습니다" 문제 해결: InvalidOperation예외. (0) | 2023.04.20 |
SQL Server 테이블 생성 날짜 쿼리 (0) | 2023.04.20 |
iPhone/iOS에서 전화번호의 파란색 스타일을 제거하려면 어떻게 해야 합니까? (0) | 2023.04.20 |