Существует ли способ перезапустить приложение ColdFusion, не перезапуская весь сервер?
Существует два приложения ColdFusion, работающие на сервере, и я только хочу перезапустить одного из них.
Если вы используете Application.cfc, вы можете обновить его, чтобы можно было принудительно вызвать onApplicationStart (), если в URL-адресе передается что-то конкретное, или что-то подобное. Просто поместите проверку этого магического токена в onRequestStart () и вызовите onApplicationStart (), если это так.
Если нет, вы можете попробовать предложение @ Marcos. Я не уверен, какие последствия это может иметь в вашем приложении. Я бы предложил переименовать ваше приложение, чтобы оно запускалось как новое приложение.
Если вы на CF9, запустите ApplicationStop()
https://cfdocs.org/applicationstop
Обычно я помещаю ссылку на сессию каждого пользователя в struct в области видимости Application, чтобы отслеживать, что происходит в приложении. Возможно, здесь поможет что-то подобное в области видимости Server. Попробуйте:
Тогда у вас будет ссылка на реальный объект Application вне области видимости этого приложения. Вы можете попробовать всевозможные разрушительные вещи, чтобы избавиться от нее. Попробуйте это на свой страх и риск!!! И делайте это на сервере разработчиков, прежде чем делать это на своем рабочем сервере. ;)
.Use cfinvoke
.
<cfinvoke method="onApplicationEnd" component="Application">
<cfinvokeargument name="ApplicationScope" value="#application#" />
</cfinvoke>
Вот, моя версия CF7 / 8 приложения ApplicationStop для CF9. Я считаю, что это потокобезопасно, отмечая комментарий Шона.
<cffunction name="ApplicationStop" returntype="boolean" output="false">
<cfif IsDefined('application')>
<cftry>
<!--- This is just in case there's no app scope but variables.application --->
<cfset CreateObject('java', 'coldfusion.runtime.ApplicationScopeTracker').cleanUp(application) />
<cfreturn true />
<cfcatch type="any"></cfcatch>
</cftry>
</cfif>
<cfreturn false />
</cffunction>
Как упоминал Генри, это моя запись в блоге на эту тему: http://misterdai.wordpress.com/2010/06/14/cf-flag-application-to-run-onapplicationstart-part-2/