Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Веб сервис, как и где об этом почитать? 
:(
    Опции темы
HmeL
Дата 18.6.2010, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 21.12.2006

Репутация: нет
Всего: нет



Цитата(Vasay @  18.6.2010,  15:30 Найти цитируемый пост)
С какой периодичностью вам надо забирать данные?  Может не надо ничего держать постоянно запущенным  и достаточно использовать CRON ?


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

CRON, хм... сейчас погуглю


Цитата(Fortop @  18.6.2010,  15:32 Найти цитируемый пост)
На удаленном хостинге ssh user@serverip php /path/to/script/client.php start get=content


а эту строку где прописывать надо? в httpd.conf ?



Цитата(Fortop @  18.6.2010,  15:32 Найти цитируемый пост)
О том как поднимать скрипт автоматически - гуглим "демоны на php"


Погуглю

PM MAIL WWW ICQ   Вверх
Fortop
Дата 18.6.2010, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Цитата(HmeL @  18.6.2010,  15:54 Найти цитируемый пост)
Цитата(Fortop @  18.6.2010,  15:32 Найти цитируемый пост)
На удаленном хостинге ssh user@serverip php /path/to/script/client.php start get=content

а эту строку где прописывать надо? в httpd.conf ?

Эм?

Вы же запускать что-то собирались на удаленном хостинге?
Это команда для linux набираете ее в консоли на локальной машине.
Под Win проще воспользоваться putty

Хотя было бы еще проще, если бы вы немного пояснили задачу. Возможно, половина танцев с бубном просто не нужна.





--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
HmeL
Дата 18.6.2010, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 21.12.2006

Репутация: нет
Всего: нет



в предыдущем посте задачу прояснил - конкретнее некуда.

Цитата(Fortop @  18.6.2010,  16:04 Найти цитируемый пост)
Это команда для linux набираете ее в консоли на локальной машине.Под Win проще воспользоваться putty


стартанул я его, отлично. а что делать когда он упал? просыпаться в 3 ночи и прописывать в командной строке снова?



Vasay, За КРОН - большое человеческое, буду ковырять
PM MAIL WWW ICQ   Вверх
Vasay
Дата 18.6.2010, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 1
Всего: 73



HmeL


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


Правильно?


И Вам нужно написать клиента к этому серверу?


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
HmeL
Дата 18.6.2010, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 21.12.2006

Репутация: нет
Всего: нет



Vasay, Понял правильно, только этот сервер по своему таймауту шлет запрос на разрыв соединения. в этом случае агент засыпает на минуту и создает новое соединение. Клиент уже написали. Протестирован на локале, на денвере, тепреь пытаемся запустить эту неведомую #@$ню на хостинге smile
PM MAIL WWW ICQ   Вверх
Vasay
Дата 18.6.2010, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 1
Всего: 73



HmeL

Если хостинг дает доступ по ssh (если он не дает, то Вам такой хостинг не подходит) заходите на сервер по ssh (длы виндовс используете программу putty).

Я запускаю демонов таким скриптом (т.е. создаю файлик с этим скриптом, ставлю на него права на исполнение):

Код

#!/usr/bin/perl
use POSIX qw(setsid);
chdir 'Путь к папке с программой'                 or die "Can't chdir to /: $!";
umask 0;
open STDIN, '/dev/null'   or die "Can't read /dev/null: $!";
open STDOUT, '>run.log' or die "Can't write run.log: $!";
open STDERR, '>error.log' or die "Can't write error.log: $!";
defined(my $pid = fork)   or die "Can't fork: $!";
exit if $pid;
setsid                    or die "Can't start a new session: $!";
system("команда запуска нашей программы");


комманда запуска в вашем случае "php имя_скрипта"

Но вот хостинг, скорей всего будет этот скрипт убивать. Так что лучше взять какой-нибудь дешевый VPS


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
HmeL
Дата 18.6.2010, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 21.12.2006

Репутация: нет
Всего: нет



Vasay, хостер поддерживает ssh и cron. я уже поменял код демона, он отрабатывает 100 циклов и шатдаунится. в крон прописал старт каждые 5 минут - так что с этим проблем нет.

пока что мучаемся через putty подключится к хостингу с помощью сгенеренного .ppk файла, но безрезультатно.

может есть другие методы? напрямую по айпи можно подключится?
PM MAIL WWW ICQ   Вверх
Fortop
Дата 18.6.2010, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Цитата(HmeL @  18.6.2010,  16:14 Найти цитируемый пост)
в предыдущем посте задачу прояснил - конкретнее некуда.

Абстрактно и ни о чем.
Мы пульнем пакеты, нам начнут сыпаться пакеты. 
Зачем, почему - не понятно. Кто сказал что вообще нужно делать именно так?

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

Цитата(HmeL @  18.6.2010,  16:14 Найти цитируемый пост)
стартанул я его, отлично. а что делать когда он упал? просыпаться в 3 ночи и прописывать в командной строке снова?

Для этого надо стартовать не сам процесс, а мастер-процесс.
Который и будет контролировать работу дочерних. Упал дочерний - подняли его.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Rodman
Дата 21.6.2010, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Fortop, задача - отправить пакет одним агентом. а вторым получить подтверждение доставки.

вроде все получилось с отправкой. вот с получением подтверждением пока не справились, но возник вопрос - как проверить количество запущенных агентов кроном и рубануть их при надобности (есть подозрения что запустилось несколько)?
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Fortop
Дата 21.6.2010, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Цитата(Rodman @  21.6.2010,  00:40 Найти цитируемый пост)
Fortop, задача - отправить пакет одним агентом. а вторым получить подтверждение доставки.

Вот если бы не выдумывали велосипедов, то и проблем бы не имели.
SOAP дает возможность получить подтверждение о приеме данных.

Цитата(Rodman @  21.6.2010,  00:40 Найти цитируемый пост)
но возник вопрос - как проверить количество запущенных агентов кроном и рубануть их при надобности

А вы не хотите сделать 1 вопрос - 1 тема?

запущенные процессы можно посмотреть при помощи 
Код

ps ax | grep progname



--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Rodman
Дата 21.6.2010, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Цитата(Fortop @  21.6.2010,  10:56 Найти цитируемый пост)
Вот если бы не выдумывали велосипедов, то и проблем бы не имели.
SOAP дает возможность получить подтверждение о приеме данных.

работа происходит по определенному протоколу. поэтому SOAP отбросили.


Цитата(Fortop @  21.6.2010,  10:56 Найти цитируемый пост)
запущенные процессы можно посмотреть при помощи 

я не имею доступа к серверу через командную строку.
я думал на РНР есть какой нить вариант
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Fortop
Дата 21.6.2010, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Цитата(Rodman @  21.6.2010,  12:03 Найти цитируемый пост)
работа происходит по определенному протоколу. поэтому SOAP отбросили.

Я об этом и писал. Зачем придумывать свой левый протокол, который не поддерживает подтверждения успешности операции?
Вот теперь и отгребаете проблемы на ровном месте.

Цитата(Rodman @  21.6.2010,  12:03 Найти цитируемый пост)
я думал на РНР есть какой нить вариант 

PHP тем и удобен что он позволяет легко связывать кучу разных вещей, которых в нем нет.
А вариант есть - я писал о нем.
Цитата(Fortop @  18.6.2010,  18:18 Найти цитируемый пост)
Для этого надо стартовать не сам процесс, а мастер-процесс.
Который и будет контролировать работу дочерних. Упал дочерний - подняли его. 


Вопрос множества мастер-процессов решается путем lock.файла


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0770 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.