goodier: То есть если один раз сработает команда flock( $fp, LOCK_EX ) ,
то повторно она уже не сработает пока не произойдет flock($fp, LOCK_UN) да или нет, вот этот момент у меня в голове не укладывается.
Не сработает.На обычной ОС. Пишут, что на какихто специальных многопоточных ОС - это не действует. Но как проверить я писал постом выше.
Но это всё ерунда, надо делать очередь заявок, юзер может только в очередь заявку послать, а непосредственно обрабатывает заявку независимый от юзера скрипт.
Только не на файлах, а то вы не учтете многопользовательский вариант,
да и там надежность я бы поставил под сомнение, скажем, если хакер одновременно отправит 100-200 запросов. подозреваю, пройдет больше одного.
Многопользовательский вариант можно, файл лочки должен лочить запросы юзера, а не всей системы.
Хакерство таким образом не пройдёт, всё равно один из запросов будет первым.
ТС у вас принципиально неправильно, отправлять бабло по запросу юзера - нельзя. По запросу юзера надо формировать заявку на выдачу бабла. А выдочу бабла долджен проводить независимый от юзера скрипт (по крону, повесьте раз в минуту, только тоже с лочкой, чтоб два скрипта выдачи нельзя было запустить). При каждой выдаче происходит проверка: достаточно ли средств на балансе, если достаточно - то выдавать, если нет - не выдавать; затем удалять заявку; переходить к следующей заявке.
WinSplit Revolution круче и бесплатная, смысл точно такой же, только фич больше.
Но это не то.
---------- Добавлено в 21:37 ---------- Предыдущее сообщение было в 21:36 ----------
DenisVS: betam, может, забьёте :)
Ну можа есть такая прога.
Помню, был аськоклиент какойто, вот он умел так делать. Отжирал себе четверть десктопа справа и висел там, никого не пуская на своё место. Не могу вспомнить что зха клиент такой.
Кстати, если речь идет только о борьбе с банальной накипью - тут поможет и простой кувшин вроде Бриты. Знакомые пользуются, накипи в чайнике нет.
Питерская вода почти не даёт накипи, кстати.
Я перепутал EMS и UPS. В том магазе как раз UPS.
То есть если один раз сработает команда flock( $fp, LOCK_EX ) ,
то повторно она уже не сработает пока не произойдет flock($fp, LOCK_UN)
да или нет, вот этот момент у меня в голове не укладывается.
Не сработает.На обычной ОС. Пишут, что на какихто специальных многопоточных ОС - это не действует. Но как проверить я писал постом выше.
Но это всё ерунда, надо делать очередь заявок, юзер может только в очередь заявку послать, а непосредственно обрабатывает заявку независимый от юзера скрипт.
dkameleon, Многопользовательский вариант - это и есть лочить файл с названием юзера или нет , понять не могу
Да, это и есть. Но можно не париться, а лочить скрипт для всех. Операция не долгая, поэтому долго ждать не прийдётся.
$fp = fopen("LOG_POST/".$login.".txt","a");
ИМХО, не получится открыть залоченый файл -> соотв. в while будет бесконечный цикл.
Надо написать ф-юю
Lock($login){
$fp = fopen("LOG_POST/".$login.".txt","a");
if( flock( $fp, LOCK_EX )) return true;
return false;
}
и проверять не if( flock( $fp, LOCK_EX )), а if(Lock($login))
Проверить можно так:
Перед
flock($fp, LOCK_UN);
fclose($fp);
поставить sleep(10);
А тут
/* мой скрипт обрабатывается */
добавить логирование времени
Запустить несколько запросов паралельно и посмотреть в лог, одновременно скрипты отработали, или дождавшись заверщения друг друга.
грубо говоря
Это неправильно. Можно мильён раз успеть получить первый запрос, до того как отработает Update.
Lock-файл значительно надёжней.
<?
$try=false;
while(!$try)
{
if(удалось заблокировать lock-файл)
{
$try=true;
}
else
{
$try=false;
sleep(); // не обязательно, в зависимости от ситуации
}
}
?>
В начало скрипта.
Только не на файлах, а то вы не учтете многопользовательский вариант,
да и там надежность я бы поставил под сомнение, скажем, если хакер одновременно отправит 100-200 запросов. подозреваю, пройдет больше одного.
Многопользовательский вариант можно, файл лочки должен лочить запросы юзера, а не всей системы.
Хакерство таким образом не пройдёт, всё равно один из запросов будет первым.
ТС у вас принципиально неправильно, отправлять бабло по запросу юзера - нельзя. По запросу юзера надо формировать заявку на выдачу бабла. А выдочу бабла долджен проводить независимый от юзера скрипт (по крону, повесьте раз в минуту, только тоже с лочкой, чтоб два скрипта выдачи нельзя было запустить). При каждой выдаче происходит проверка: достаточно ли средств на балансе, если достаточно - то выдавать, если нет - не выдавать; затем удалять заявку; переходить к следующей заявке.
Блокировка файла.
Если совсем в общем случае - перед началом выполнения скрипта проверяйте, не заблокирован ли файл, если заблокирован - то ждите, пока его отпустит.
После проверки на блокировку - блокируйте файл и делайте, что надо. Как сделали - разблокируйте файл.
betam, она умеет мультимониторы под рдп? мне, собственно, этого от программы надо
думаю, нет.
http://www.splitview.com/SplitView-Personal-Edition
работает, под xp просто отлично, под 7 глючит, увы
WinSplit Revolution круче и бесплатная, смысл точно такой же, только фич больше.
Но это не то.
---------- Добавлено в 21:37 ---------- Предыдущее сообщение было в 21:36 ----------
betam, может, забьёте :)
Ну можа есть такая прога.
Помню, был аськоклиент какойто, вот он умел так делать. Отжирал себе четверть десктопа справа и висел там, никого не пуская на своё место. Не могу вспомнить что зха клиент такой.
http://jgpaiva.dcmembers.com/gridmove.html
http://www.aerosnap.de/eng/download.htm
http://www.maxto.net/
http://www.stefandidak.com/windows-layout-manager/
http://sourceforge.net/projects/powerresizer/
http://ivanheckman.com/allsnap/
http://www.eliasae.se/winmover/features/
http://acer-gridvista.en.softonic.com/images
Пробуй
Короче, все они двигают окна.