Эластичный агент заданий немедленно истечет время ожидания задания в приложении логики

Чтобы выполнить довольно длинный SQL-запрос в Logic App, я сохранил его как хранимую процедуру в своей базе данных, а затем создал задания и шаги для запуска хранимой процедуры, а также владельца и целевую группу для моего задания. Я вижу свою работу, учетные данные и целевую группу в Elastic Job Agent, который я создал, чтобы моя работа работала.

Когда я запускаю запрос непосредственно к базе данных, он выполняется успешно и занимает около 28 минут.

Я запускаю задание в своем приложении логики. Это означает, что я не запускаю запрос напрямую, а создаю задание, которое запускает хранимую процедуру как шаг.

Но когда я смотрю в Elastic Job Agent, чтобы увидеть результат, я замечаю, что он сразу же истекает. Запрос, похоже, не выполняется. Это я знаю, потому что в начале запроса я очищаю таблицу и не вижу, что происходит.

Как я уже упоминал, приложение Logic довольно простое и выполняет только эту работу.

Причина, по которой я делаю все это, связана с проблемой тайм-аута, которую Logic App имеет для длинных запросов SQL. Но теперь я получаю тайм-аут в Elastic Job Agent даже быстрее, чем 2-минутный предел приложения Logic.

ОБНОВЛЯТЬ:

Когда я смотрю на шаги, которые я прошел для создания учетных данных, я понимаю, что мог пропустить этот шаг: Учетные данные для выполнения заданий.

Означает ли это, что я должен создать отдельную базу данных для своих заданий? Мы имеем дело только с одной базой данных, которая содержит мои таблицы.

ОБНОВЛЕНИЕ 2:

Для созданного мной агента Elastic Job моя база данных назначена в качестве базы данных Job. Так что все видимо на одной БД.

Вы можете выполнить exec jobs.sp_start_job '<Your_Job_Name>'; SELECT * FROM jobs.job_executions WHERE is_active = 1 ORDER BY start_time DESC и показать нам last_message ? Ставьте лайк этому.

Joseph Xu 16.12.2020 08:30
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
468
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вроде и не нужно создавать отдельную базу для Azure Elastic Job, возможно вы что-то проигнорировали при создании Azure Elastic Job.

Вы можете обратиться к моему процессу его создания с помощью sql:

use master;
CREATE LOGIN masteruser WITH PASSWORD='qazwsx!1111';
CREATE LOGIN jobuser WITH PASSWORD='qazwsx!1111';

 

use master;
CREATE USER masteruser FROM LOGIN masteruser;

 

use gongdb;
CREATE USER masteruser FROM LOGIN masteruser;

 

use gongdb;
CREATE USER jobuser FROM LOGIN jobuser;

GRANT CREATE TABLE TO jobuser;

EXEC sp_addrolemember 'db_owner', 'jobuser';

use gongdb;
-- Create a db master key if one does not already exist, using your own password.  
CREATE MASTER KEY ENCRYPTION BY PASSWORD='qazwsx!1111';  

 


-- Create a database scoped credential. 
CREATE DATABASE SCOPED CREDENTIAL jobuser

WITH IDENTITY = 'jobuser',

SECRET = 'qazwsx!1111';

 


CREATE DATABASE SCOPED CREDENTIAL masteruser

WITH IDENTITY = 'masteruser',

SECRET = 'qazwsx!1111';

 

SELECT * FROM sys.database_scoped_credentials

 

EXEC jobs.sp_add_target_group 'DemoGroup';

 

SELECT * FROM jobs.target_groups WHERE target_group_name='DemoGroup';

 

EXEC jobs.sp_add_target_group_member 'DemoGroup',
@target_type = 'SqlServer',
@refresh_credential_name='masteruser', --credential required to refresh the databases in server
@server_name='<server>.database.windows.net'
GO

 

EXEC jobs.sp_add_job @job_name='CreateTableTest', @description='Create Table Test'

 


EXEC jobs.sp_add_jobstep @job_name='CreateTableTest',
@command=N'IF NOT EXISTS (SELECT * FROM sys.tables WHERE object_id = object_id(''Test''))
CREATE TABLE [dbo].[Test]([TestId] [int] NOT NULL);',
@credential_name='jobuser',
@target_group_name='DemoGroup'

 

SELECT * FROM jobs.jobs

 


SELECT js.* FROM jobs.jobsteps js
JOIN jobs.jobs j
  ON j.job_id = js.job_id AND j.job_version = js.job_version

 

exec jobs.sp_start_job 'CreateTableTest';
SELECT * FROM jobs.job_executions WHERE is_active = 1 ORDER BY start_time DESC

===================обновление=====================

Когда вы создаете Azure Elastic Job, вы указываете только одну базу данных в качестве базы данных заданий.

Target db — это база данных, к которой вам нужно получить доступ. Например, если вы выполняете операции по созданию таблиц в gongdb, вашей целевой базой данных будет gongdb.

Чтобы Azure Elastic Job получил доступ к целевой базе данных, вам необходимо создать USER для целевой базы данных, а затем создать учетные данные, необходимые для доступа.

Причина, по которой master db необходима, заключается в том, что master db — это системная база данных с более высоким авторитетом. USER целевой базы данных должен быть создан master.

В предоставленном мной SQL и база данных заданий, и целевая база данных являются gongdb, что может вызвать у вас недопонимание.

Тогда почему в документации указано, что они должны быть отдельными. Пожалуйста, посмотрите на эту ссылку и на диаграмму, где есть 3 отдельные базы данных. learn.microsoft.com/en-us/azure/azure-sql/database/…

disasterkid 16.12.2020 12:51

И просто для ясности, где во всем этом Elastic Job Agent? Если я создам Elastic Job Agent и назначу ваш gongdb в качестве базы данных JobDatabase, будет ли это работать?

disasterkid 16.12.2020 13:08

Спасибо, Фрэнк! Это многое проясняет, кроме последнего вопроса. Основываясь на вашем последнем предложении, могут ли база данных заданий и целевая база данных быть одним и тем же? Если да, то почему в документации написано, что Job Database должна быть "чистой и пустой"? Вы сами пробовали использовать одну и ту же БД как для работы, так и для цели?

disasterkid 17.12.2020 10:39

Судя по результатам моих тестов, это нормально. Я успешно выполнил задание по созданию таблицы в моей целевой базе данных. Может быть, вы можете проверить это сами, чтобы убедиться в этом. Что касается того, почему в документе написано Job Database should be "clean and empty, мне не очень понятно.

Frank Borzage 17.12.2020 10:45

Точнее, меня это сильно смутило, и мы не можем себе позволить добавить новую базу только для этой цели. Я попробую ваше решение, но, зная, что вы проверили себя, и я с вами на 90% реализации, я считаю, что у вас есть правильный ответ.

disasterkid 17.12.2020 11:09

@disasterkid Я рад видеть, что ты разрешил сомнения!

Joseph Xu 18.12.2020 02:38

Другие вопросы по теме

Azure devops RestAPI System.Description
Журнал хвостового контейнера BLOB-объектов Azure с помощью Powershell
Получение метаданных в фабрике данных Azure не дает мне успешно несколько файлов Excel
Ошибка Azure B2c «Невозможно проверить предоставленную информацию». при использовании пользовательских атрибутов
Есть ли способ запросить все ветки, связанные с репозиторием GIT, с помощью расширений AZ CLI?
Как я могу использовать azurerm_resource_group_template_deployment для ресурса бюджета Azure, но игнорировать изменения даты начала и окончания?
Как авторизовать подключения API в Azure от имени другого пользователя с помощью powershell при едином входе
Как обновить разделы файлов settings.xml в кластере Service Fabric из конвейера Azure во время развертывания
Можно ли входить внешним пользователям, если клиент Azure B2C имеет ограничения?
Развертывание службы приложений зависло при загрузке — как мы можем это исправить?