Сервисная шина MassTransit Azure, настройка повторяющегося расписания - PullRequest
0 голосов
/ 29 марта 2019

Можно ли установить повторяющееся расписание доставки сообщений через MassTransit, запущенный по служебной шине?

Если да, есть ли пример кода?

Или лучше создать службу, аналогичную службе Quartz Scheduler, но нацелиться на Azure Scheduler?

1 Ответ

0 голосов
/ 01 апреля 2019

Если вы используете Azure, у вас есть три варианта:

  1. Приложения логики Azure (вместо планировщика Azure - читайте здесь )
  2. Функции Azure
  3. Веб-задания

В приложениях логики Azure вы можете создать рабочий процесс для переноса даты с помощью триггера «повторения» .

В функциях Azure вы можете использовать Timer Trigger и написать собственную логику с помощью служебной шины Azure SDK / REST API .Вы можете найти более подробную информацию о Timer Trigger здесь для сценария C #, но вы также можете использовать JS, F # и т. Д. Если вы используете функцию Azure, если запланированное время составляет каждые 5 минут, function.json будет закодировано, как показано ниже

{
    "schedule": "0 */5 * * * *",
    "name": "myTimer",
    "type": "timerTrigger",
    "direction": "in"
}

Код функции будет выглядеть примерно так:

public static void Run(TimerInfo myTimer, ILogger log)
{
    const string ServiceBusConnectionString = "<your_connection_string>";
    const string QueueName = "<your_queue_name>";
    static IQueueClient queueClient

    if (myTimer.IsPastDue)
    {
        log.LogInformation("Timer is running late!");
    }
    queueClient = new QueueClient(ServiceBusConnectionString, QueueName);

    // Your logic to read to write message
}

Я использую .NET SDK для служебной шины Azure, вы можете найтиссылка здесь .Если вы новичок в функциях Azure, функция сценариев C # работает немного по-другому.Подход ссылки на DLL отличается.Вы можете найти его здесь .

Когда речь идет о веб-заданиях Azure, они выполняются как часть веб-приложений Azure.Для веб-задания Azure вы также можете написать веб-задание, используя шаблон консольного приложения.Вы также можете использовать тот же SDK Azure Service Bus, упомянутый выше, для разработки веб-задания.Здесь вы найдете документацию по веб-заданиям Azure здесь .

...