当前位置 博文首页 > 文章内容

    客户端运行服务器端程序

    作者:大愚 栏目:服务器 时间:2020-04-30 11:21:17

    服务器端有个数据爬虫,本身会定时运行。但是有时候客户端需要立即在服务器端运行该爬虫程序。

    <解决办法一>有个非即时性的解决办法,就是用客户端将需求写入一个任务表中,服务器定时扫描该表,有任务就执行。可以在任务计划程序中定义一个计划,每分钟扫描一次任务表。但是有时候一分钟的交互仍然较长,开始思考有没有更即时的方案。

    <解决办法二>尝试写一个网页,在客户端将任务post过去,在客户端运行。但是爬虫在运行时,总是会报一个“远程服务器强制关闭了一个连接”的错误。不确定是否是该爬虫所连接的服务器本身的限制,暂未深度研究。

    <解决办法三>于是开了个脑洞,仍然是将需求写入一个任务表中,然后通过触发器运行爬虫程序。但是SQL SERVER运行程序第一需要足够权限,这个方案不安全;第二是会等待爬虫程序结束,且不能有任何交互。限制仍然较多。于是想到用触发器来定制一个SQL SERVER的作业,并且在该作业中设置完成后写入WINDOWS应用程序日志。

    然后在任务计划程序中定义触发器为“发生事件时”,该事件即SQL SERVER发送的通知级事件,事件来源选择SQLSERVERAGENT即可。

    06fb7ab6b9eaee763a9309b17ad19de2.png

    难点在于触发器如何定制SQL SERVER作业。在此给出触发器的定义:

    2e83d6aeab94f817afdb26476782532f.png

    注意这里的作业运行计划推迟了20秒,是因为如果直接用GETDATE(),那么该计划可能无法被启用(因为超过了当前时间)。



    文章来源:博客园

    原文链接:https://www.cnblogs.com/simeut/p/12794630.html

    如有侵权,请联系删除!