Потому что у функции чуток другая сигнатура выходит:
для
func ssay(str string) {
негерирует вот это:
typedef struct { char *p; GoInt n; } GoString;
extern void ssay(GoString p0);
Если делать специальную функцию обертку, то да, можно обойтись без таких шаманств, но это в целом не проблема.
Через PubSub с академической точки зрения не интересно. С практической, накладные расходы. А так в целом можно крутить горутины, отдавать некий callback и получать в него результат (теоретически), собственно что и хочу попробовать.
Да и если без такого извращения, то можно передать какой-нибудь массив, обработать его в Go используя всю его параллельность, дождаться и вернуть результат, что будет быстрее подобной обработки на чистом Ruby.
Спустя год работы с LAG, ушел к схеме без онного, нагрузка по итогам оказалось достаточно для просто 1Гб линка. С группами да есть некоторые неудобства, но в целом коммутаторы помещаются в одной switch группе и вполне все справляется.
В итоге схема такая: все на роутер + между собой, на случай если они выпадет, то проблем не будет.
Первоначальная была: LAG (по 2 линка) по цепочке и последний в роутер, все работало пока один свитч не сгорел и пришлось быстро все пересобирать.
Единственное нарекание по данной схеме к самому Mikrotik и RouterOS в частности, так до сих пор и не умеют MetaRouter на много ядерных процессорах. В итоге больно много ресурсов простаивает, хотя очень бы помогло упростить схему балансирования двух аплинков от одного провайдера с одинаковым шлюзом. И сейчас работает, но не без заморочек.
selen11: не факт, не понятно в каких отношениях они находятся
car (1) - (1) color = car has_one color а сolor belongs_to car
car (n) - (1) color = car belongs_to color а сolor has_many car
MongoDB очень прожорлива по оперативе, самих данных там и GB нет, остальное это индексы, и зарезервированная память. Да и у себя не совсем логи храню, а пользовательскую статистику. Записи разного размера, с десяток полей + несколько составных индексов навешено.
помещайте в session[:user] то что вам нужно, сделайте хелперы и потом проверяйте, есть ли там чего или нет. Можете посмотреть как это делают в omniauth либо devise, правда там для этого используют warden.
Сам не проверял еще этот подход, но думаю должно получиться реализовать, его для всего приложения, поместив в ApplicationController, тогда если есть шаблон для нужной роли, будет выбран он, иначе обычный.
А теорию сегодня проверю, может даже некоторый гем сформируется.
На хабре балансировка, а здесь нужно разным подсетям свой wan. Да и там везде случай когда линки от разных провайдеров, а не от одного с одинаковым шлюзом.
для
func ssay(str string) {
негерирует вот это:
typedef struct { char *p; GoInt n; } GoString;
extern void ssay(GoString p0);
Если делать специальную функцию обертку, то да, можно обойтись без таких шаманств, но это в целом не проблема.