首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何确定计划任务是自动运行还是在浏览器中运行?

如何确定计划任务是自动运行还是在浏览器中运行?
EN

Stack Overflow用户
提问于 2012-12-21 01:57:49
回答 1查看 1.9K关注 0票数 1

我将一些代码作为计划任务运行,在CF Administrator中进行设置。

有没有办法在代码中判断代码是作为计划任务运行的,是通过单击CF Administrator计划任务区域中的运行图标运行的,还是直接在浏览器中调用的?

添加额外的变量将不起作用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-21 02:48:23

从CF管理中的测试链接

如果您询问是否可以通过单击coldfusion管理中的测试链接来识别手动运行的计划任务和按计划运行的计划任务之间的区别,则可以启用计划任务的日志记录。每当用户运行任务时,日志条目都会显示为[name of job] Executing because of user request at {timestamp}。如果它正常运行,日志条目将显示为[name of job] Executing at {timestamp}

我一直在寻找一种通过代码来判断的方法,但我什么也找不到。这取决于调度程序的准确性,但您可以查看now()是否等于调度的时间。类似于(伪代码):

代码语言:javascript
运行
复制
<!--- disclaimer: I've heard stories that cfschedule sometimes runs a little late --->
<cfset scheduleTime = "2:00 am">
<cfif cgi.HTTP_USER_AGENT eq "CFSCHEDULE" and timeFormat(now(), "h:mm tt") eq scheduleTime>
   <!--- ran naturally --->
<cfelse>
   <!--- ran by force --->
</cfif>

从浏览器

如果您想知道您的计划任务是否按计划运行,或者文件是否被浏览器命中,您可以查看cgi.HTTP_USER_AGENT。如果它是由调度程序运行的,它将等于CFSCHEDULE,否则它将等于客户端设置为发送的任何内容。

也许吧,Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11

或者,如果你足够幸运,有一个机器人点击它,例如:Mozilla/5.0 (compatible; MJ12bot/v1.4.3; http://www.majestic12.co.uk/bot.php?+)

假冒客户机或服务器请求使用户代理CFSCHEDULE是可能的,但可能性不大。

顺便说一下..。

如果您感兴趣,cfhttp的默认用户代理是"COLDFUSION“。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13977831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档