sh
#!/bin/sh
curl http://runonce.herokuapp.com/
システムを再インストールし、スクリプトを再配置しても、一度だけ実行されます(実行すると「Hello、world!」と表示されます)。
編集:私もrunonceの背後にあるスクリプトをリリースすると思いました。特別なことは何もありません。どちらの方法でもリリースされるはずではありませんでしたが、何でも。
<?php
$db = pg_connect("[connection information]");
$ip = isset($_SERVER["HTTP_X_FORWARDED_FOR"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
pg_query("DELETE FROM users WHERE time < now() - interval '1 day'");
$result = pg_query_params($db, "SELECT * FROM users WHERE ip = $1 LIMIT 1", array($ip));
if (!pg_fetch_row($result)) {
echo "Hello, world!\n";
pg_query_params($db, "INSERT INTO users (ip) VALUES ($1)", array($ip));
}
データベーススキーマと同様に
CREATE TABLE users (
ip inet PRIMARY KEY,
time timestamp with time zone NOT NULL DEFAULT now()
);
CREATE INDEX ON users (time);
データはHerokuのデータベースに保存されます。必要に応じて、プライバシーポリシーを確認してください。データベースに保存されているデータをチェックするのではなく、純粋にコードを保存して、コードを1回実行できるようにします。