Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Нужно написать многопоточное Ubuntu приложение.

Приложение будет использоваться как "прототип", под свои нужды я его буду допиливать сам.

Опыта написания кода под Linux системы у меня нет, на C писал мельком лет 10 назад, сейчас пишу на php - поэтому код должен быть читаемым и хотя бы немного коментированным (на уровне 1 комент на 1 задачу из функционала).

основной функционал описан ниже. Для тестирования нужен будет сервеный функционал, его я предоставлю.

* приложение нужно будет компилировать под ubuntu

* запускаться будет в формате "app 123 dkfjkjdkfk", где 123 dkfjkjdkfk цифровая и строковая переменные, количество типы переменных я буду допиливать сам

* может писать логи в текстовый файл (с указанием времени события с точностью до миллисекунд и текущего использования памяти программой) в формате

[2013-07-17 23:22:31.8781] [2.3 Mb] - message - function log($msg)

* может запрашивать урл ХХХ (с сохранением cookies между запросами - можно юзать сurl, если он поддерживает многопоточность) - function request($url,$postvars = array(), $cookies=null)

* может связываться с базой данных mysql

* основной цикл

** приложение отправляет POST запрос на урл http://server.com/login.php (с логином\паролем\служебными данными)

** приложение сохраняет куки в файл

** приложение устанавливает соединение с mysql

** приложение sleepает до наступления времени HH:MM:SS

** приложение создает 200 потоков

*** в каждый поток передается случайное число миллисекунд, время HH:MM:SS, переменные для запроса

*** поток ждет до наступления времени HH:MM:SS.ms

*** дальше в цикле поток делает 1000 раз

**** поток делает GET запрос на урл http://server.com/buy.php, сохраняет точное время запроса

**** поток анализирует регэкспом полученные данные, [CODE: (\d+)], сохраняет время получения ответа (с точностью до миллисекунд) и код, при получении кода SUCCESS поток

прекращает работу и возвращает отладочные данные array(array(timeStart, resultCode,timeEnd), ...)

**** при возникновении ошибок (таймаута\других ошибок) - код ошибки идет родителю

**** при принудительном прекращении работы потока он должен вернуть родителю отладочные данные - array(array(timeStart, resultCode,timeEnd), ...)

** родитель висит пока работают потоки потомки, если один из потомков вернул код SUCCESS - родитель принудительно прекращает работу остальных потомков, собирает у них отладочные данные и сохраняет

их в файл

** плюс родитель должен раз в 15 секунд делать mysql запрос вида SELECT * FROM tasks WHERE id=XXX и если поле

STATUS==SUCCESS - завершать работу потоков и сохранять отладочные данные (возможно, делать это в новом потоке)

Требования к приложению

- реализовал подобную систему на php + fork, но при сотне\тысяче потоков плужение нереальное :(, поэтому скриптовые языки не подходят

- Язык желательно C или "C-подобный" язык

Бюджет

- до $500 если вы реально профи, гарантируете скорость работы приложения и готовы будете при необходимости оперативно помогать допиливать софт за доп $$. Сроки разработки неделя-две.

- до $200 если вы в общих чертах в курсе, что к чему, если у вас есть опыт программирования и вы не против взяться за это и готовы гарантировать сроки не больше месяца.

11 лет назад
zhil
41 годУкраина
17 лет в сервисе
Был
месяц назад
  • Похожие заказы
  • 1. Выполнить задания на языке программирования Haskell Сапер. или Морской бой. 2. Реализация имитационной модели в среде моделирования AnyLogic (5 или 6) Подробно Задание прикреплено. Предлагайте цену.

    Закрыт
    11 лет назад
  • $2500

    Обязанности: • Разработка приложений, компонентов приложений; • Анализ работоспособности программы, отладка; • Разработка пользовательского интерфейса, сопровождение программных продуктов, написание технической документации. Требования: • Отличное знание C++, стандартных библиотек, опыт программирования не менее 3-х лет; • Понимание принципов ООП; • Умение работать с Microsoft ...

    Закрыт
    11 лет назад
  • $130

    Необходимо разработать модуль / предоставить существующий / или же подсказать алгоритм для определения смешанной кодировки. Смешанная кодировка — это когда в одном документе, веб странице, или текстовом блоке используется сразу несколько кодировок. Задача модуля: Распарсить страницу, задетектить ...

    Закрыт
    11 лет назад
  • Кoмпании Hauberk требуется программист для работы над компонентами антивируса на основе ClamAV. Требования:     Хорошее знание Windows - UAC, IPC, x64/WoW64, FUS, security, и т.д.     Умение писать код, переносимый между версиями Windows (XP-Vista-7-8)     Знание ...

    Закрыт
    11 лет назад
  • Имеется устройство, которое при подключении по USB к ПК видно как виртуальный COM порт c определенным номером. Задача состоит в том, чтобы по заданным VID, PID устройства, а также параметру "Описание устройства, предоставляемое шиной" определить ...

    Закрыт
    11 лет назад
  • Требуется скрипт для быстрого создания SMTP шлюза по всем правилам – с привязкой домена, инструкцией (или автоматизацией) по прописыванию dns, mx и ptr итд... Входные данные - 1. логин и пароль аккаунта на линукс centos 2. порт (25 ...

    Закрыт
    11 лет назад
  • $50

    Здравствуйте! Нужно, вместо старого и неисправного сайта, поставить новый, оставив прежний домен. Повторяю, что хостинг, доменное имя и название сайта должны от старого сайта перейти к новому. Больше там ничего делать не нужно. Редактировать новый ...

    Закрыт
    11 лет назад
  • $500

    Здраствуйте уважаемые вэблэнсеры, задача следующая: необходимо создать пользовательский (user-defined) TreeView для использования в качестве ActriveX на .NET. язык написания не важен. язык использования ActiveX C#. ActiveX должен работать на x64 Подробное описание функций TreeView при личном ...

    Завершен
    11 лет назад
  • Здравствуйте. Есть известная тизерная сеть. Я рекламодатель. Так как CTR тизеров постоянно понижается и они становятся неактуальными - возникла задача массовой загрузки тизеров, так как вручную уже надоело. Сам тизер состоит (все стандартно): Заголовок (1 поле) - ...

    Завершен
    11 лет назад