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的数据库中,如果您愿意,可以随时检查其隐私政策。我不检查存储在数据库中的数据,其存储纯粹是为了让代码执行一次。