Как я могу сделать Perl-скрипт, который будет переименовывать файлы в определенном каталоге каждые пару минут? - PullRequest
1 голос
/ 15 ноября 2010

Я хотел добавить ротацию живого изображения на свой сайт, и я не мог найти другого способа сделать это, поэтому я решил, что мне нужен скрипт cgi, который будет: 1. Удалите первое изображение в повороте (например, pic1.jpg). 2. Переименуйте остальные изображения (например, переименуйте pic2.jpg в pic1.jpg, pic3.jpg в pic2.jpg, pic4.jpg в pic3.jpg и т. Д.) 3. Делайте это каждые 5 минут, чтобы все посетители моего сайта в одно и то же время просматривали одно и то же изображение. Любая помощь будет высоко ценится, Спасибо.

Ответы [ 3 ]

2 голосов
/ 15 ноября 2010

Чтобы это работало «так, чтобы все пользователи моего сайта одновременно видели одно и то же изображение», вам нужно использовать разные URL-адреса для каждого изображения или убедиться, что браузеры и прокси-серверы запрещают кэшируйте картинки ... а не кэширование - это действительно плохая идея; Ваши зрители не оценят это, равно как и ваш сервер.

2 голосов
/ 15 ноября 2010

По правде говоря, звучит как довольно плохая идея.Файловые операции относительно медленны и имеют тенденцию наступать в очень параллельном приложении, таком как веб-приложение.

Ищите другой путь.Как насчет использования текущего времени в качестве ключа для выбора среди картинок?

currentImageIndex = currentTimeRoundedToTheNearestFiveMinutes %
                    totalNumberOfImages

Отредактировано с более подробной информацией по запросу:

В основном, взять текущее время и округлить его до ближайших пяти минут.Делая что-то вроде currentHour / 12, используя целочисленную математику, вы получите это;в противном случае обрежьте результат.Затем используйте оператор по модулю (% в Perl и многие языки - удобный оператор, который новички склонны игнорировать), чтобы получить число от 0 до n-1, где n - это общееколичество изображений, которые вы обслуживаете.Затем вы можете обратиться к таблице сопоставления, чтобы перейти от этого индекса к имени файла.

0 голосов
/ 15 ноября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...