Уничтожить рабочий процесс в ColdFusion?

Я пишу сценарий загрузки базы данных в ColdFusion. Это загружает приблизительно 150 000 записей через дюжину таблиц. Я запускаю скрипт через запрос веб-браузера. Там какой-либо путь состоит в том, чтобы уничтожить процесс, после того как я запросил страницу? Я могу остановить страницу в браузере, но база данных вставляет, продолжают бэкенд, пока сценарий не завершился, который делает процесс отладки очень медленным, так как я должен запустить весь скрипт каждый раз. Есть ли что-нибудь, что я могу сделать через бэкенд Java?

Среда, в которой я нахожусь, является ColdFusion 8, пробегающим IIS. У меня есть отключенный контроль производительности, но я хотел бы смочь подражать способности уничтожить задания как в мониторе производительности.

5
задан stomcavage 18 February 2010 в 17:29
поделиться

5 ответов

Я пытался сделать что-то вроде pid-файла Unix: ваш скрипт должен периодически (возможно, каждые 10/100/1000 итераций) проверять доступность какого-либо файла в файловой системе и прекращать выполнение, если он содержит определенное значение, а может быть, существует или нет вообще.

Конечно, это может быть поле в базе данных, переменная в области приложения (с соответствующей стратегией блокировки) или что угодно, что вы сочтете подходящим.

Вам также понадобится второй скрипт, который будет изменять состояние вашего "pid-объекта". Это может быть так же просто, как другой файл .cfm, который вы можете загрузить с помощью браузера.

3
ответ дан 14 December 2019 в 04:36
поделиться

В цикле из 150 000 записей вы можете просто остановить его на том числе, которое считаете подходящим. Установите переменную счетчика и всякий раз, когда она попадет в цикл, просто или .

2
ответ дан 14 December 2019 в 04:36
поделиться

Вы, вероятно, захотите запустить процесс, используя cfthread .

Запустите свой процесс, например ...

<cfthread name="myThread" action="run"> 
    ...Your loop to insert into database....
</cfthread>

Затем вы можете убить поток, используя ...

<cfthread action="terminate" name="myThread"/>
2
ответ дан 14 December 2019 в 04:36
поделиться

с некоторыми продуктами, такими как fusionreactor, вы можете убить базовый поток Java, но если база данных действительно контролирует запрос, вы не можете остановить его (в базе данных). Вам нужно подождать, пока база данных не вернет управление потоком.

0
ответ дан 14 December 2019 в 04:36
поделиться

Если у вас установлено программное обеспечение для управления, такое как FusionReactor, вы можете использовать его для остановить выполнение скриптов.

1
ответ дан 14 December 2019 в 04:36
поделиться
Другие вопросы по тегам:

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