2012-04-01 13 views
2

ColdFusionで自動タイミングスクリプトを作成する際に助けが必要です。 60分ごとに私のサーバー(http://www.mysite.com/ALERT.cfm)のいずれかのページが動作しているかどうかを確認したいと思います。CFScheduleが2回動作しないColdFusionのダウンタイムを確認するスクリプト

ページがチェックされているときにページがダウンしている場合は、ページがバックアップしているかどうかを5分後に再度確認します。バックアップされていない場合は、[email protected]に電子メールが送信されます。バックアップされている場合は、何もする必要はなく、60分のサイクルチェックを再度開始します。

私は今、1つのチェックを行う方法を理解しますが、2つではありません。 page1.cfm、私はそれがダウンしているかいないかどうかを確認したいページ(testpagetocheck.cfm) - だからここ

は私が

<cfhttp url="http://example.com/testpagetocheck.cfm" method="get" > 
<cfif cfhttp.statusCode neq "200 OK"> 
<cfschedule action = "update" 
task = "TaskName" 
operation = "HTTPRequest" 
url = "http://www.example.com/ALERT.cfm" 
startDate = "#createdate(2012,4,01)#" 
startTime = "08:00 AM" 
interval = "3600" 
requestTimeOut = "10"> 
</cfif> 

を使用していますcfscheduleのコードは、だから私は4ページを持っていると言うです上記のコードを持つALERT.cfmには、testpagetocheck.cfmがダウンしている場合にcfmailがメッセージを送信し、page2.cfmに上記のコードが再度ありますが、間隔は「once」で開始時刻は5です今から数分。

Page1.cfm to alertMe.cfmは魅力的です。私はページがダウンしているというメッセージを送っています。 alertMe.cfmへのページ2.cfmも美しく動作します。また、私がチェックしているページがダウンしているというメッセージも私に送信されます。しかし、page1.cfmから2.cfmのalertMe.cfmに移動しようとすると、page2.cfmのcfscheduleが実行されているように見えないので、サーバーが稼働しているときにメールが届かなくなります。

誰でも私が間違っていることを教えていただけますか?私はCF7を使用しています

答えて

1

私はロジック自体が間違っていると思います。ページごとにしばらくを要求維持するためにスケジュールを作成します

  1. 実際には2つのことをしたいです。

  2. リクエストされたページ(スケジュールを通じて)は、特定のウェブサイト/ページがダウンしているかどうかをチェックしてアクションを取る必要があります。

最初に1回呼び出すファイルを作成します。そのファイルは - 例えば - createSchedule.cfm その仕事はスケジュールを作成することだけです。

次に、毎回(スケジュールされたタスクによって)要求されるチェッカーファイルchecksite.cfmを作成します。このファイルchecksite.cfmは、このようなcfhttpの呼び出しやかどうかを確認し、含まれている必要があります

<cfhttp url="http://mysite.com/thePageYouWantToCheck.cfm" method="get" > 
<cfif cfhttp.statusCode neq "200 OK"> 
<!--- send the email here, or just include the Alert.cfm file that will do ---> 
</cfif> 

最後にだけチェックして、取るCFHTTP行いますchecksite.cfmを要求して維持するためにタスクをスケジュールするために、ファイルcreateSchedule.cfmを呼び出します行動。


サーバがダウンした場合、これらすべてのCFMのファイルは、その後、1 CFServer上で実行している場合。それらのすべてがうまくいかない、私はあなたが警戒を得ることは決してないことを意味します。 Bulは、PageYouWantToCheck.cfmでエラーが発生した場合、または他のCFServerで実行されている場合(この場合は、CFServerがダウンしてもアラートを取得する必要がある場合のみ)にアラートを取得します。

今、このサービスを提供する多くのウェブサイトがあります(サイトダウンチェック)。いくつかは支払われ、その他は無料です。私が長い時間以来使っている最高の無料はこれです: http://www.uptimerobot.com/ それは非常に素晴らしい機能で無料です、それをチェックしてください。

+0

thxですが、60分ごとに1回確認し、ページがダウンしている場合は5分後にもう一度確認します。あなたが提供したソリューションはそれをしません。 – Mike

0
<cfschedule action = "update" 
task = "TaskName" 
operation = "HTTPRequest" 
url = "http://www.mysite.com/ALERT.cfm?call=2" 
startDate = "#createdate(2012,4,01)#" 
startTime = "08:00 AM" 
interval = "3600" 
requestTimeOut = "10"> 

あなたがそのベースにページパスパラメータコール= 2でスケジュールタスクを設定している間、あなたは電子メールで送信するかしない必要があるかどうかの条件を置くことができます。..

しかし、私はあなたがCFMを呼び出している、本当に驚いていますCFMページがダウンしていることを確認するページ。 coldfusionがダウンしている場合、あなたのスケジュールタスクは決して呼び出されず、alert.cfmがタイムアウトしたかどうか、または他の500エラーがないかチェックしない限り、電子メールを受け取ることはありません。

0

cfscheduleを初めて使用したときに私はこれにいくつか問題がありました。 cfscheduleタグを実行すると、タスクが存在しない場合は作成され、存在する場合は更新されます。タスクを作成/更新した後、あなたは、次の操作を行う必要があります:あなたが実行するように設定しているとき

<cfschedule action="run" task="taskName">

この

は、タスクの実行を行います。あなたがそれを設定したときに実行されるように設定されているので、それはあなたが期待するように、最も直観的なものではありません。

関連する問題