Запустите хранимые процедуры последовательно или параллельно

Нашел решение, я публикую его на тот случай, если кто-то еще столкнется с такой проблемой в Parse PHP SDK, потому что он существует с начала 2018 года.

В моем скрипте, который сохраняет рекламу в моей базе данных, Я сохранял ключевые слова в нижнем регистре, основываясь на описании и заголовке представленных элементов:

$kStr = $description. " " .$title. " " .$currentUser->getUsername();
$keywords = explode( " ", strtolower($kStr) );

Это работало нормально, но так как PHP ParseQuery с фильтром ключевых слов нуждается как минимум в пустом элементе в массиве ключевые слова, я должен был добавить эту простую строку ниже кода выше:

array_push($keywords, "");

Таким образом, база данных хранит все правильные ключевые слова + пустое: "" , вот пример о том, как ключевые слова поля типа Arrat выглядят в базе данных:

[
  "lorem",
  "ad",
  "ipsum",
  "johndoe",
  "" <-- this is the empty item that the SDK needs to properly perform a query in case of additional filters (in my case, a ParseGeopoint one)
]

Это может быть лишь временным приемом, пока разработчики Parse Server не исправят эту проблему. Это работает, так почему бы и нет;)

11
задан Joel Coehoorn 8 December 2008 в 16:43
поделиться

3 ответа

Создайте несколько заданий агента SQL Server, куда каждый выполняет конкретный proc.

Затем из Вашего основного proc начинают задания.

Единственный способ ожидать, о котором я могу думать, состоит в том, если у Вас есть таблица состояния, которую обновляет каждый proc, когда это закончено.

Затем еще одно задание могло опросить ту таблицу относительно общего завершения и начать финал proc. С другой стороны, у Вас мог быть триггер на этой таблице.

Последствия памяти полностью до Вашей среды..

ОБНОВЛЕНИЕ: Если у Вас есть доступ к системе задачи.. затем Вы могли проявить тот же подход. Просто имейте окна, выполняют несколько задач, каждый ответственный за один proc. Затем используйте триггер на таблице состояния для начинания чего-то, когда все задачи завершатся.

UPDATE2: Кроме того, если Вы готовы создать новое приложение, Вы могли бы содержать всю логику в единственном exe...

3
ответ дан 3 December 2019 в 05:59
поделиться

Действительно необходимо переместить ночной sprocs в задания. Управление заданиями SQL Server позволит Вам сделать все планирование, Вы просите.

2
ответ дан 3 December 2019 в 05:59
поделиться

Вы могли бы хотеть изучить использование DTS (который может быть выполнен от SQL Agent как задание). Это позволит Вам довольно точную регулировку, по которой хранимые процедуры должны ожидать других для окончания и что может работать параллельно. Можно также выполнить пакет DTS как EXE из собственного программного обеспечения планирования в случае необходимости.

Примечание: Необходимо будет создать несколько копий объектов соединения позволить вызовам работать параллельно. Два вызова с помощью того же объекта соединения все еще заблокируют друг друга, даже если Вы явно не вставите зависимость.

2
ответ дан 3 December 2019 в 05:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: