Techioz Blog

ノードを使用して Heroku のタスクを作成するにはどうすればよいですか?

概要

Heroku の事前スケジュールのタスクを作成しようとしています。 Ruby や Nodejs でこのようなタスクを記述するにはどうすればよいですか?

desc "Pings PING_URL to keep a dyno alive"
task :dyno_ping do
  require "net/http"
  if ENV['PING_URL']
    uri = URI(ENV['PING_URL'])
    Net::HTTP.get_response(uri)
  end
end

解決策

Node.js でタスクを記述したい場合は、そのタスク用の JavaScript ファイルを作成できます。 Node.js を使用して同じタスクを実現する方法の例を次に示します。

const https = require('https');

function dynoPing() {
  const pingUrl = process.env.PING_URL;

  if (pingUrl) {
    https.get(pingUrl, (response) => {
      // Do something with the response if needed
    }).on('error', (error) => {
      console.error(`Error pinging URL: ${error.message}`);
    });
  }
}

dynoPing();