Выполнение задания крона

Основная предпосылка очень сложна. Перенос любого значения в URL означает, что вы ограничены подмножеством символов ASCII. Использование любого вида сжатия, такого как gzcompress, уменьшит размер строки, но приведет к двоичному двоичному объекту. Этот двоичный двоичный объект не может быть перенесен в URL, поскольку он будет выдавать недопустимые символы. Чтобы транспортировать этот двоичный двоичный объект с использованием подмножества ASCII, вам необходимо каким-то образом его кодировать и превращать в символы ASCII.

Итак, вы превратили бы символы ASCII во что-то еще, что затем превратили бы в символы ASCII.

Но на самом деле, в большинстве случаев символы ASCII, с которых вы начинаете, уже имеют оптимальную длину. Вот быстрый тест:

$str = 'Hello I am a very very very very long search string';
echo $str . "\n";
echo base64_encode(gzcompress($str, 9)) . "\n";
echo bin2hex(gzcompress($str, 9)) . "\n";
echo urlencode(gzcompress($str, 9)) . "\n";

Hello I am a very very very very long search string
eNrzSM3JyVfwVEjMVUhUKEstqkQncvLz0hWKUxOLkjMUikuKMvPSAc+AEoI=
78daf348cdc9c957f05448cc554854284b2daa442772f2f3d2158a53138b9233148a4b8a32f3d201cf801282
x%DA%F3H%CD%C9%C9W%F0TH%CCUHT%28K-%AAD%27r%F2%F3%D2%15%8AS%13%8B%923%14%8AK%8A2%F3%D2%01%CF%80%12%82

Как видите, исходная строка самая короткая. Среди закодированных сжатий base64 является самым коротким, поскольку он использует самый большой алфавит для представления двоичных данных. Это все же дольше, чем оригинал.

Для некоторой очень специфической комбинации символов с некоторым очень специфическим алгоритмом сжатия, который сжимает до представимых в ASCII данных, может быть возможно добиться некоторого сжатия, но это довольно теоретическое. Обновление: На самом деле, это звучит слишком негативно. Дело в том, что вам нужно выяснить, имеет ли смысл сжатие для вашего случая использования. Разные данные сжимаются по-разному, а разные алгоритмы кодирования работают по-разному. Кроме того, более длинные струны могут достичь лучшей степени сжатия. Возможно, где-то есть приятное место, где можно добиться некоторого сжатия. Вы должны выяснить, находитесь ли вы в этом приятном месте большую часть времени или нет.

Что-то вроде md5 не подходит, так как md5 - это хэш , что означает, что он необратим. Вы не можете получить исходное значение из него.

Боюсь, вы можете отправить параметр только через POST, если он не работает в URL.

9
задан Tony Borf 28 May 2009 в 18:29
поделиться

2 ответа

Да, будет.

Вы должны заставить вашу программу создавать файл .pid (например, в / var / run /). При запуске он должен проверить, существует ли такой файл, и если да, то выйти.

Какую программу / сценарий вы запускаете?

10
ответ дан 4 December 2019 в 15:25
поделиться

Да. Cron будет запускать процесс с заданным интервалом, независимо от того, не завершился ли предыдущий.

Вы можете коснуться файла, как указано в другом ответе, и проверить его существование перед тем, как задействовать ваш процесс. .

Или вы можете изучить список процессов, чтобы увидеть, запущен ли уже «экземпляр»:

ps -ef | grep *your_script_name* | grep -v grep | wc -l
3
ответ дан 4 December 2019 в 15:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: