Собственно, задача такова: "подружить" 2 сайта на Yii посредством протокола AMQP и клиента RabbitMQ в частности, конкретнее - для передачи новых данных (будем передавать сериализованные атрибуты модели) с одного сайта на другой, на котором будет производиться анализ и модерация этих данных с последующим принятием или отклонением (с оповещением первого сайта). То есть проще говоря "общение" между сайтами должно быть в двустороннем порядке.
Итак, ближе к делу. Все настройки по установке и инициализации RabbitMQ я выполнил (следуя инструкциям этой статьи), убедившись в работоспособности сервера (на тестовом примере с передачей сообщения 'Hello, buddy!'). Однако на практике столкнулся со следующей проблемой: в методе afterSave() модели (атрибуты которой нужно отправлять) прописал вызов функции, которая будет отвечать за отправку данных на "модерирующий" сайт; на сайте-получателе создал команду наследующую CConsoleCommand, по исполнении которой и должен произойти прием нужных данных с сохранением, однако консоль выбрасывает вот это исключение: exception 'AMQPQueueException' with message 'Server channel error: 404, message: NOT_FOUND - no exchange 'amq.product' in vhost '/'' in...
Теперь по коду. В модели откуда отправляются данные:
Кстати, попутно вопрос (из документации если честно так и не понял этот момент): на сайтах нужно обязательно указывать одинаковые настройки подключения к AMQP или для каждого свои? Упомяну также, что пару guest/guest я не использовал (хотя и с ней пробовал - ситуация с исключением та же), поскольку в курсе, что она работает только в пределах localhost.
А вот код команды (которая по задумке в будущем будет исполняться по cron'у):
По факту exchange_name и routing_key в обоих сайтах указал одинаковые, однако вот как описал выше - "плюется" вот то самое исключение. В чем может быть причина/проблема?
Буду всем очень признателен за любую помощь и советы. Заранее спасибо!
Есть две идентичные таблицы (назовем их А и В) в двух совершенно разных БД MySQL, сервера которых расположены в разных странах (достаточно далеко друг от друга). В перспективе обе БД будут работать с высоко нагруженными сайтами. В таблицу В в течение дня добавляются многочисленные данные, которые нужно в определенное время (например, в 20:00) синхронизировать с таблицей А (данные, которых еще нет - добавить, существующие - обновить, удаленные - также удалить). Какие в этом подходе особенности: работа с выборками больших объемов данных, необходимость создания дополнительных полей-статусов у строк, информирующих об их синхронизации (при этом при удалении в таблице В сами строки удаляться не должны, а им лишь необходимо приписывать статус "удален"), и, возможно, еще некоторые другие не очень приятные особенности. По идее существует еще один вариант: разработать API на том сайте, где находится таблица А, и при добавлении/редактировании/удален ии данных пользователем (через некий подразумеваемый личный кабинет) на втором сайте (с таблицей В) слать запросы к сайту А (мол, вот такую-то запись добавь к себе, а вот эту - удали, и т.д.)
Как Вы считаете, какой из предложенных способов (или предложите свой вариант) проявит себя в работе лучше? Какой будет более эффективным? Что еще следует учесть? Конечно, самый главный критерий в этой задаче - это 100%-ая гарантия в синхронности данных, а негативные факторы - возможность "перегруза" одного из (или даже обоих) серверов, дальность расстояния между ними (и как следствие - прямо пропорциональное немалое время ожидания), другие форс-мажоры и мое незнание этой темы , поскольку с такой задачей сталкиваюсь в первый раз.
За любую помощь, дельные советы и активное обсуждение заранее спасибо!
Доброго времени суток, уважаемые форумчане!
Столкнулся со следующей задачей: есть таблица категорий со следующей вполне стандартной и известной структурой: |id|parent_id|name|...| . Когда-то еще давно нашел где-то в сети очень хорошую функцию по формированию дерева категорий с любым уровнем вложенности:
К своему сожалению и стыду я до сих пор не особо силен в теме деревьев, поэтому работая над задачей по формированию "особого" дерева категорий снова столкнулся с трудностями Задача заключается вот в чем: нужно сформировать из БД структурированное дерево таким образом:
Категория 1 (корень)
- Название категории 1
- Одномерный массив всех потомков категории 1 с учетом всех вложенностей
Категория 2 (корень)
- Название категории 2
- Одномерный массив всех потомков категории 2 с учетом всех вложенностей
... и так далее
Сложность заключается в том, что в базе данных, скажем, у "Категории 1" (являющейся корнем с parent_id=0) может быть сколь угодно потомков, а у этих потомков в свою очередь - свои потомки, и т.д. - короче говоря, древовидная структура с неизвестным уровнем вложенности. Таким образом, нужно чтобы в результате на выходе был массив приведенной выше структуры.
Вопрос: можно ли как-то модифицировать приведенную мною функцию, или как вообще это реализовать?
Буду очень признателен вам за помощь!
P.S: очень хотелось бы для себя разобраться с этой темой на каких-то простых примерах, чтобы наверняка "дошло", а также если вам не составит труда - не могли бы вы рассказать на примере как наоборот можно получить список всех предков для текущей категории (очень может пригодится для таких же новичков как я - например, при формировании хлебных крошек на сайте).
Ребята, спасибо большое еще раз всем за советы и рекомендации, вы мне очень помогли! В общем, вчера сходил и заказал ту самую (приведенную выше) комплектацию - на материнскую плату покруче, другой SSD или видеокарту уже просто денег нет - я и так вылез за рамки своего бюджета. Теперь со временем нужно будет докупить остальные комплектующие (монитор, клавиатура, мышь и звуковая система) - пока буду использовать то что есть со старого системника. На счет апгрейда - да, пожалуй вы правы, что со временем мало что можно будет проапгрейдить - но, как говорится, "не будем загадывать". Все-таки когда начинаю задумываться о таких вещах я ловлю себя на первоочередной причине моей смены железа - то есть для работы. Для игрушек на не ультра настройках я думаю с головой должно хватить (мне вон вообще сначала в магазине хотели какую-то попроще/подешевле видеокарту посоветовать, но я все же настоял на этой в виду её {пока что} современности и актуальности для необходимых мне задач и целей).
Всем большое спасибо за ответы! Вот настольный ПК, который мне подходит по бюджету и магазин которого находится в моем городе, прямо через дорогу. Но опытный народ советует не брать готовые сборки (тем более эту) по причине того, что может быть риск того, что там не совсем новые компоненты, а залежавшиеся на складе либо "приведенные в порядок" после какого-то другого хозяина, да и со слов "Мощнейший 4-ядерный процессор СORE i5 в паре с мощной видеокартой GeForce GT 740 - очень хорошая связка!" эти самые опытные люди тоже проорали и посоветовали не поддаваться этим самым красивым фразам, а все же собрать что-то свое, более надежное и хорошее.
Итак, по максимуму экономя бюджет (но по итогу все же не уместившись в указанную в теме сумму) и с учетом многочисленных советов и статей на всевозможных сайтах и форумах, моя финальная (я очень на это надеюсь) сборка такова:
1. Материнская плата - Gigabyte GA-B85-HD3 (s1150, B85, PCI-Ex16)
2. Процессор - Intel Core i5-4590 3.3GHz/5GT/s/6MB (BX80646I54590) s1150 BOX
3. ОЗУ - Kingston DDR3-1600 8192MB PC3-12800 (или Silicon-Power DDR3 8Gb, 1600MHz, PC3-12800)
4. Видеокарта - Asus PCI-Ex GeForce GTX 750 Ti 2048MB GDDR5
5. HDD - Western Digital Blue 1TB 7200rpm 64MB WD10EZEX 3.5 SATA III
6. SSD - SSD Kingston SSDNow V300 120GB 2.5" SATAIII MLC
7. Корпус - на самом деле - на что денег хватит и смотреть, чтобы влезли комплектующие.
Что скажете по поводу этой сборки и совместимости (связки) компонентов? Какой блок питания посоветуете к данной комплектации? И нужен ли кулер для процессора? (многие пишут, что боксовый от 4590 вполне справляется со своими задачами). И последний, не менее интересующий меня вопрос: хороша ли данная сборка для дальнейшего апгрейда, скажем, через пару лет? Ну т.е. можно ли будет сюда когда-нибудь в будущем поставить какой-нибудь более мощный процессор на 1150 сокете, или более мощную видеокарту на 4 ГБ, да или хотя бы просто добавить объем к ОЗУ?
И напоследок: я по-прежнему ни в чем не уверен (в плане этой сборки), т.к. намного лучше разбираться в железе не стал (ну разве что чуток) - что советуют - на то и обращаю внимания (но своя голова тоже конечно есть и она думает). Про видеокарту по ссылке (та, которая GeForce GT 740) - сказали, чтобы "не позорился", мол, это не видеокарта, а "так себе продукт". Советовали GTX960 или GTX950 - но тогда я вообще конкретно разорюсь, да и учитывая что за самыми последними играми да еще и на ультра-настройках я не гонюсь (по крайней мере пока мне это не надо и не хватает на это времени), то для моих целей вполне должно хватить хорошей GeForce GTX 750 Ti, которая кстати тоже должна хорошо справляться с самыми последними играми (пускай и не на самых высоких настройках - для меня это не беда).
Господа-товарищи, я по-прежнему очень благодарен Вам за уделенное время и Ваши советы! Пока ничего не купил еще себе (поэтому еще есть время), пока в раздумьях - прислушиваюсь к Вашему мнению и советам, координируя их своим бюджетом и ожиданиями, поэтому от Вас на самом деле зависит многое (поскольку как я уже писал к своему большому сожалению я в вопросе железа не особо силен).
SSD меняете на родной HDD ноута. Они все равно идут только 2.5 размера
что касательно моей рабочей комплектации то у меня нет ССД тут и это очень сильно сказывается на производительности.
за совет спасибо
Panoptik пишет:
нафрилансить 200-500-1000 уе вроде как не проблема. Либо вы хреновый разработчик, либо вас просто прилично обманывают на работе по оплате
это отдельная тема, которую я как-то подымал уже на другом форуме. посоветовали погуглить/помониторить/изучить "среднюю температуру по больнице" - т.е. сколько получают/могут/должны получать в теории разработчики моего уровня (серьезно работаю в сфере веб-разработки уже больше года, в разделении уровней не разбираюсь, но допустим отношу себя к Junior [PHP] Software Developer) - погуглив, нашел цифру в 500$ в качестве медианы. На данный момент столько не платят (работаю удаленно на постоянной основе). Со следующего месяца собираюсь подымать этот вопрос со своим работодателем. Что на это скажете и посоветуете? В вопросе статистики ЗП я к моему большому сожалению не особо осведомлен, и здесь, как и в вопросе конфигурации ПК - всем платят "по-разному", да и мало кто признается или посоветует как следует действовать, я так думаю. На счет хреновый (или тупой/не тупой) я не знаю - не мне себя судить, но со всеми поставленными задачами справляюсь, претензий со стороны тех, на кого/с кем я работал - нет.
Так что мой совет будет - апгрейд ХДД до ССД и профит получится существенный. Ну и упомянутую проблему и/о это решит
SSD - решение проблемы "тормозов" того же PhpStorm при индексации файлов, а также прирост в скорости загрузки ОС и PhpStorm. А как быть с проблемой того, что ноутбук порою очень сильно греется и даже может сам выключиться? (благо, пока это бывает не слишком часто)
Panoptik пишет:
мой текущий рабочий комп: i5 + 8Gb RAM - тормоза приличные при работе только хрома и шторма.
первый раз читаю, что Intel ругают)) Вот и опять я запутался...Ну, SSD наверное брать на ноут не вариант - куда ставить то его? Или бывают переходники типа USB? Но это тоже, пожалуй, не дело наверное - тут уже будет играть роль скорость USB-порта, да и один как минимум всегда будет занят. Да и проблему с перегревом не уверен что это решит.
P.S: все больше коллег по профессии настойчиво склоняют меня в сторону Intel Core i5. За этот бюджет - конечно, только системник - 19" монитор есть от старенького Athlon'a.
P.S.2: вот, нашел предложение у себя по городу (не знаю, актуальна ли цена) - но вроде из того, что советуют - норм. Но опять, же, сколько людей - столько и мнений:
DelphinPRO пишет:
проц Corei5, памяти гигов 8 (2x4Gb), ssd для работы и системы + 1Tb винт для шлака
- кому-то хватает
Panoptik пишет:
мой текущий рабочий комп: i5 + 8Gb RAM - тормоза приличные при работе только хрома и шторма.
- а кто-то (вроде бы как) и жалуется. Что делать - до сих пор не решил. Внутренний голос советует психануть и не задумываясь взять вариант выше по ссылке с i5 и обязательно SSD (ибо тоже очень много советующих) - и забыть об этой проблеме как минимум на пару лет))
Пока основной вопрос, который вы не осветили: что вообще хотите, ноутбук или настольник?
ноутбуки сейчас вообще стоят заоблачно дорого, по сему рассчитываю на приобретение настольного ПК.
Мелкий пишет:
Проверьте по данным диагностических утилит и каким-нибудь системным мониторингам. iostat/vmstat, если под *nix.
I/O - ввод/вывод, насколько я понял, но не совсем понимаю что это даст и что Вы имеете в виду!? работаю под Windows 8.1.
Мелкий пишет:
Потому что, во-первых, какие именно модели вы сравниваете, во-вторых, в каких задачах, в третьих за какие деньги.
1) модели - пожалуй, сложно тут что-то сравнить за приблизительно одинаковую цену, ибо все Intel однозначно дороже AMD (имеются в виду поколение iCore, скажем)
2) задачи - веб-программирование (работа с PhpStorm, Yii, WordPress под Windows) + иногда игры (Dota2, World Of Tanks - за новизной и чем-то типа GTA V и др. не особо гонюсь, ибо нет времени, и как уже отметил выше - нет особого влечения к этому).
3) желаемый бюджет - как и указано в теме ~ 46.000 руб. (15.000 грн.)
Здравствуйте, уважаемые коллеги и форумчане! Собственно, появилась нужда в приобретении более-менее нормального железа для программирования - я как и многие из вас занимаюсь Web-разработкой (PHP/HTML/CSS/JS со всеми вытекающими), а на деле - "сапожник без сапог", как говорится - нужен хороший инструмент для обеспечения того, чем я "зарабатываю на хлеб". На данный момент работаю на ноутбуке HP Pavilion g6 (6ГБ ОЗУ, 2ГБ видеокарта и 4x1.9GHz процессор - вот процессор капец как "радует"). На тот момент когда брал подкупила видеокарта, ОЗУ и то, что аж 4 ядра (был молодой и зеленый студент) - сейчас же вижу, что толку от них с такой частотой - маловато, ноут очень сильно греется и даже может сам вырубиться от перегрева (и не у одного меня, судя по отзывам в сети) - что очень бесит и раздражает, а также периодически подвисает при нагрузках. Так вот, на данный момент замечаю, что наиболее "тяжелыми и ресурсопожирающими" для системы являются PhpStorm (особенно при загрузке IDE и индексации файлов) и то, когда работаю с WordPress (а с ним я сейчас только и работаю в виду направленности деятельности фирмы - сам он по себе тоже тот еще прожора, особенно когда открыто много вкладок и приходится что-то тестировать через FireBug - такие тормоза порой бывают, ужос!). В игры я играю не часто, ибо по характеру не особо "игроман", но если и появляется желание - то иногда могу порубиться в Dota2 или World Of Tanks - вот хочется чтобы этих товарищей будущий комп тоже отлично переваривал.
Бюджет, которым я располагаю - около 15.000 украинских гривен (или же в переводе на российские рубли - примерно 46.000). Ожидания от ПК я описал уже выше. За эти деньги я приблизительно понимаю, что прям чего-то "супер-пупер топового" ожидать не стоит, но очень хотелось бы, чтобы при надобности в будущем ПК можно было самостоятельно модифицировать и улучшить отдельные компоненты (добавить ОЗУ, например, или накрайняк поставить другой процессор или видеокарту, а не просто выкинуть этот ситемник, потому что ничего уже не поддерживается и ничего не совместимо) - то есть это к материнской плате наверное больше пожелание. В завершение своей многобуквенной темы хочу сказать, что я (как и многие другие, наверное) до сих пор не понимаю что же лучше - AMD или Intel? От многих "диванных экспертов" слышал, что Intel однозначно круче тем, что он Intel, а iPhone - тем что это iPhone - так себе аргумент, если честно.
Буду очень рад и признателен Вашим советам и комментариям, а особенно - советам коллег по профессии. Большое спасибо заранее за помощь и уделенное Вами время!
Собственно, столкнулся вот с такой задачей: нужно средствами PHP проверить вводимый пользователем пароль (при регистрации/смене пароля) на наличие последовательностей типа "abc", "12345", "xyz" и т.д. (т.е. обезопасить его от создания "простых паролей", в которых идут по порядку друг за другом символы алфавита или цифры). Постановка задачи вроде бы и простая, а вот как сделать - не знаю.
Буду очень признателен Вам за помощь! Заранее спасибо.
caballero, пользуюсь Denwer'ом. в папке с Apache'м в httpd.conf вот что заметил:
# Однако можно поступить проще. Для того, чтобы добавить новый виртуальный
# хост со стандартными настройками, вам достаточно лишь создать структуру
# его каталогов в директории /home. Сервер Apache автоматически "увидит"
# изменения при следующем запуске. Вносить правки в httpd.conf не требуется.
То есть мое yii-приложение находится по пути home/my_app/www/(здесь само yii-приложение)
P.S.: с API других соц. сетей таких заморочек не было...
Доброго времени суток всем) собственно, вопрос вот какой: как прикрутить АПИ Фейсбука к своему проекту находящемуся пока что на localhost? В сети полно мануалов и гайдов, но информация уже значительно устарела, поскольку API сей замечательной соц. сети меняется чаще, чем погода. Итак, приложение на ФБ есть, PHP SDK for Facebook тоже качнул, импортировал в контроллер (пишу приложение под yii) их библиотеку и создал нужный экшн с кодом (в моем случае мне нужно вытягивать информацию о пользователях - простая авторизация пользователя с вытягиванием нужных полей из ответа запроса). В общем полет нормальный, авторизация работает, НО редирект стопорится из-за надписи "URL не соответствует настройкам приложения: Один или несколько из указанных URL-адресов заблокированы настройками приложения. Адрес должен совпадать с адресом веб-сайта или адресом хоста, или же домен должен являться поддоменом одного из доменов приложения." Кто знаком с текущей "вариацией" апи ФБ, пожалуйста, помогите разобраться. Спасибо большое заранее!