ANTICHAT Forum
HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
НОВЫЕ ТОРГОВАЯ НОВОСТИ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 26.03.2009, 09:41
foxxx1234
Познающий
Регистрация: 26.11.2008
Сообщений: 40
С нами: 9188165

Репутация: 4
По умолчанию

Подскажите как решить такую проблему:

Есть скрипт который добавляет людей подавших заявку в друзья на сайте вконтакте.
При запуске скрипт проверяет не удалена ли анкета и если удалена то удаляет ее из файла с аками. Скрипт запускаю с cron и иногда в файл с аками записывается несколько одинаковых логинов.

Может ли это происходить например из-за того что например один скрипт запущеный с cron еще не доработал и запустился снова. Если да то как это проблему решить.
 
Ответить с цитированием

  #2  
Старый 26.03.2009, 11:05
KIR@PRO
Постоянный
Регистрация: 26.12.2007
Сообщений: 360
С нами: 9671366

Репутация: 332
По умолчанию

Цитата:
Сообщение от foxxx1234  
Подскажите как решить такую проблему:

Есть скрипт который добавляет людей подавших заявку в друзья на сайте вконтакте.
При запуске скрипт проверяет не удалена ли анкета и если удалена то удаляет ее из файла с аками. Скрипт запускаю с cron и иногда в файл с аками записывается несколько одинаковых логинов.

Может ли это происходить например из-за того что например один скрипт запущеный с cron еще не доработал и запустился снова. Если да то как это проблему решить.
тебе надо на время работы скрипта блокировать файл.....
вот кусочек кода:

PHP код:
$filefopen ("file.txt""r"); //это понятно открываем файл
flock($file,2); //flock используется для блокировки/разблокировки файлов
//заблокировали файл полностью

while (! feof($file//теперь работаем с файлом записываем читаем... как пример считывание файла полностью..
{
$text fgets ($file1024);
echo (
$text);
}
flock($file,3);//разблокировали файл

//да и не забудь if else использовать для проверки открыт ли файл.. 
За блокировку отвечает функция flock(указатель на файл , вид блокировки). Вид блокировки обозначается цифрой (1 - частичная, 2 - полная). Чтобы разблокировать файл пользуйесь функцией flock, но вид блокировки поставьте "3". © WebCorp
 
Ответить с цитированием

  #3  
Старый 26.03.2009, 15:09
AkyHa_MaTaTa
Постоянный
Регистрация: 19.03.2007
Сообщений: 684
С нами: 10077446

Репутация: 1020


По умолчанию

Имхо идея с lock файлом в этом случаи более разумна чем просто лочить файл.
 
Ответить с цитированием

  #4  
Старый 26.03.2009, 10:50
akil
Новичок
Регистрация: 03.11.2007
Сообщений: 9
С нами: 9748340

Репутация: 12
По умолчанию

чтобы скрипт не запускался два и больше раз, используй lock файл
Просто создавай файл при запуске скрипта, и постоянно проверяй его наличие .. при завершении скрипта файл удаляй ..
И так, если файл будет присутствовать, то скрипт будет ждать пока его не станет.
Надеюсь понятно излагаю)
 
Ответить с цитированием

  #5  
Старый 26.03.2009, 15:30
Gray_Wolf
Постоянный
Регистрация: 07.03.2009
Сообщений: 357
С нами: 9042754

Репутация: 399
По умолчанию

На хостинг запрещено заливать файлы > 5 Мб
Нужно как-то обойти это ограничение.
Появилась идея написать скрипт который на локальной машине будет резать файл, а на хосте потом склеивать, но что-то не улыбается мне эта идея.
Есть ли способы попроще. (смену хостинга не предлагать)
 
Ответить с цитированием

  #6  
Старый 26.03.2009, 15:38
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
С нами: 9410786

Репутация: 2731


По умолчанию

Цитата:
но что-то не улыбается мне эта идея
т.е. не можешь написать или ты думаешь, что это плохая идея? Вовсе нет. Как на меня, имхо, самый оптимальный вариант.
 
Ответить с цитированием

  #7  
Старый 26.03.2009, 16:02
Gray_Wolf
Постоянный
Регистрация: 07.03.2009
Сообщений: 357
С нами: 9042754

Репутация: 399
По умолчанию

Цитата:
т.е. не можешь написать или ты думаешь, что это плохая идея?
Впринципе и то и другое, но больше 2-е.

Немного видоизменю вопрос.
Нужно занести дамп БД в мускул; я воспользовался для этого Sypex Dumper Lite 1.0.8, но вес сжатого дампа получается > 5 МБ.
Доступ к базе имеется только у хоста.

Может это можно сделать както иначе?
 
Ответить с цитированием

  #8  
Старый 26.03.2009, 16:07
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
С нами: 9410786

Репутация: 2731


По умолчанию

Gray_Wolf, я хз что за скрипт, но попробуй подкоректировать так, чтобы лилось на другой хост. Т.е. в директорию типа ftp://userass@domain.com. Ну т.е.
PHP код:
fopen("ftp://user:pass@domain.com/sql.sql","a+");
fwrite($fp,$data);
fclose($fp); 
 
Ответить с цитированием

  #9  
Старый 26.03.2009, 16:09
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
С нами: 9410786

Репутация: 2731


По умолчанию

ЛИБО
Дампай через пхпмайадмин и выберай не запись в файл, а скачать файл.
 
Ответить с цитированием

  #10  
Старый 26.03.2009, 16:11
Gray_Wolf
Постоянный
Регистрация: 07.03.2009
Сообщений: 357
С нами: 9042754

Репутация: 399
По умолчанию

2mailbrush нужно сделать какраз обратное,
есть дамп его нужно загнать в мускул(к которому имеет доступ только сайт).
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.