Подтвердить что ты не робот

Azure WebJobs - не обнаружено никаких функций. Как я могу сделать работу с триггером?

Я новичок в Azure WebJobs, я запустил образец, где пользователь загружает изображение в хранилище blob и вставляет запись в очередь, затем задание извлекает это из очереди в качестве сигнала, чтобы сделать что-то вроде изменения размера загруженное изображение. В основном в коде задание использует атрибут QueueTrigger для общедоступного статического метода для выполнения всего этого.

Теперь мне нужна работа, которая просто делает что-то вроде вставки записи в таблицу базы данных каждый час, она не имеет никакого типа триггера, она просто запускается сама. Как это сделать?

Я пытался иметь статический метод, и в нем я вставляю db, работа начиналась, но я получил сообщение о том, что:

Не найдено никаких функций. Попробуйте сделать классы вакансий общедоступными и общедоступными способами статичным.

Что мне не хватает?

Edit После ответа Виктора я попробовал следующее:

static void Main()
{
    JobHost host = new JobHost();
    host.Call(typeof(Program).GetMethod("ManualTrigger"));
}

[NoAutomaticTrigger]
public static void ManualTrigger()
{
    // insert records to db
}

но на этот раз я получил InvalidOperationException,

'Void ManualTrigger()' не может быть вызван из Azure WebJobs SDK. Не хватает ли атрибутов SDK Azure WebJobs?

4b9b3361

Ответ 1

Если вы не используете какие-либо атрибуты ввода/вывода из SDK WebJobs (QueueTrigger, Blob, Table и т.д.), вы должны украсить задание с помощью атрибута NoAutomaticTrigger, который будет распознан SDK.

Ответ 2

Вы можете использовать новейший SDK WebJobs, который поддерживает запуск функций задания по расписанию на основе того же формата выражения CRON. Вы можете использовать его для планирования работы каждый час:

[Disable("DisableMyTimerJob")]
public static void TimerJob([TimerTrigger("00:01:00")] TimerInfo timerInfo, TextWriter log)
{
    log.WriteLine("Scheduled job fired!");
}

Кроме того, SDK WebJobs также имеет атрибут DisableAttribute, который можно применять к функциям, что позволяет включать/отключать функции на основе параметров приложения. Если вы измените настройку приложения на портале управления Azure, задание будет перезапущено (https://azure.microsoft.com/en-us/blog/extensible-triggers-and-binders-with-azure-webjobs-sdk-1-1-0-alpha1/).