@dlangru

Страница 174 из 719
Denis
19.05.2017
07:48:34
ZFS через такие потоки принимает и отправляет огромные бинарные образы слепков ФС и всё норм

значит естьспособ

Andrey
19.05.2017
07:49:04
нужен значит аналог сискола read, не знаю, в D где это) может rawRead какой нибудь

Denis
19.05.2017
07:49:22
он тоже блокируется

Google
Denis
19.05.2017
07:49:34
как и byChunk()

Andrey
19.05.2017
07:49:55
ну а пайп твой закрывается? если нет, то чтение заблокируется. если в неблокирующий режим не перевести

Denis
19.05.2017
07:50:16
stdin это файл же, разве у файлов есть неблокирующий режим?

fcntl(d, F_SETFL, O_NONBLOCK);

Andrey
19.05.2017
07:51:10
в юниксе это все дескрипторы, что сокет, что пайп

Denis
19.05.2017
07:51:11
вроде вот такое есть действительно

а в ди - нет, File и Socket это разное

Andrey
19.05.2017
07:51:37
ну это обертки.

вот так попробуй import core.sys.posix.fcntl; import std.file; int x = fcntl(stdin.fileno, F_GETFL, 0); if (x == -1) { writeln("fcntl error"); return 1; } x |= O_NONBLOCK; int r = fcntl(stdin.fileno, F_SETFL, x); if (r == -1) writeln("fcntl set error");

или погуглить) не может быть, что б нельзя

Denis
19.05.2017
07:56:56
Есть, это оно!

Это надо добавить в File если оно ещё не

судя по гитхабу фобоса ничего такого для файлов нету

Google
Oleg
19.05.2017
08:12:22
qwerty
19.05.2017
08:14:25
Да
Да я уже проверил. Тоже получилось 4 гб. Можно использовать theAllocator безболезненно. Там есть методы для инстанциирования как объекта, так и массива. И даже массива массивов

хотя ты и сам знаешь неверняка

Oleg
19.05.2017
08:15:13
@ahdenchik если тебе нужен неблокирующий ввод/вывод, то можно тут посмотреть https://github.com/deviator/serialport/blob/master/source/serialport/port.d#L533

Denis
19.05.2017
08:15:33
а stdin уже открыт же сразу

всё, уже запилил: https://github.com/denizzzka/xymodem/blob/master/integration_test/stdio_sender.d#L47

Oleg
19.05.2017
08:15:57
Можно закрыть, вроде

Хотя хз

Denis
19.05.2017
08:16:05
щас наверну сверху тестилку

Oleg
19.05.2017
08:16:27
хотя ты и сам знаешь неверняка
Да там же просто пример был

Можно закрыть, вроде
Закрыть то можно, как открыть потом только...

Denis
19.05.2017
08:17:58
Погрепал фобос - нету там для открытых файлов возможности опции ставить такие. Надо допиливать

Oleg
19.05.2017
08:18:43
Ну то что я скинул эт чисто posix и winapi

Но они тоже в Фобосе есть

Denis
19.05.2017
08:20:47
Хочется враппер

Soket.nonblocking же есть

Надо для File такое же запилить

Пусть оно будет только для POSIX

Dmitry
19.05.2017
08:55:57
А правильно я понимаю, что конструкция: Flag!"some string" flag1; нужна для того, чтобы у флага было название для того, чтобы по нему проще было ориентироваться что он делает?

Maxim
19.05.2017
08:56:18
ога

Google
Andrey
19.05.2017
09:04:50
всё, уже запилил: https://github.com/denizzzka/xymodem/blob/master/integration_test/stdio_sender.d#L47
Только если из неблокирующего дескриптора читаешь, надо код ошибки проверять, так это может означать, что читать нечего. то есть после getchar проверять, если EOF и errno == EAGAIN || errno == EWOULDBLOCK - повторите позже

Denis
19.05.2017
09:06:05
при любом EOF повторите позже по моей логике в софтине

https://github.com/denizzzka/xymodem/blob/master/integration_test/stdio_sender.d#L37

Dmitry
19.05.2017
09:22:26
м... если у меня двум классам нужно одно и тоже соединение с БД то тут только синглтоно класс соединения с БД делать? (вроде уже спрашивал)

Ievgenii
19.05.2017
09:23:13
Синглтон не хороший подход для этого

Dmitry
19.05.2017
09:24:22
а если вот так сделать:



просто объявление всего вверх перенести

Ievgenii
19.05.2017
09:27:18
Сделай сервис локатор и в него помести свой драйвер. Зарегистрируй его как единый объект (аналог синглтона)

Dmitry
19.05.2017
09:27:48
уф... я про такое в первый раз слышу...

Ievgenii
19.05.2017
09:28:37
http://sergeyteplyakov.blogspot.com/2013/03/di-service-locator.html

Ievgenii
19.05.2017
09:29:16
https://en.wikipedia.org/wiki/Service_locator_pattern

Denis
19.05.2017
09:29:50
очередь запросов в базу и 1 соединение

и усё

Ievgenii
19.05.2017
09:30:42
Он это и хочет сделать

Что-то подобное

Dmitry
19.05.2017
09:30:49
Ievgenii спасибо @ahdenchik а на сколько правильно создавать новые экземпляры подключений для каждого класса. Просто я в толк не возьму. Мне часть логики работы с БД нужно в отдельный файл вынести. но там у меня разные connections не будут видны

Denis
19.05.2017
09:31:22
очередь запросов в базу и всего 1 соединение, используемое по очереди

Google
Denis
19.05.2017
09:31:49
А не одно расшаренное физическое соединение между классами

Ievgenii
19.05.2017
09:31:50
Правильно делать пулКоннектов

Denis
19.05.2017
09:32:02
Зависит от типа базы, мы это не обсуждали)

Ievgenii
19.05.2017
09:32:29
А не одно расшаренное физическое соединение между классами
Он что-то подобное и хочет сделать, просто не верно выразился

Denis
19.05.2017
09:32:35
А ну ок тады

Ievgenii
19.05.2017
09:32:43
А вообще юзай Монго

И перфоменс и простота...

Denis
19.05.2017
09:32:57
и отсутствие реляций

Admin
ERROR: S client not available

Denis
19.05.2017
09:33:04
https://github.com/denizzzka/vibe.d.db.postgresql вот пример PostgreSQL с пулом

В самом vibe.d есть пул, но код такой мутный, что написал свой

Ievgenii
19.05.2017
09:35:57
Denis
19.05.2017
09:36:41
SQL vs NoSQL thread go?

Ievgenii
19.05.2017
09:37:13
Не понял

Denis
19.05.2017
09:37:52
http://stackoverflow.com/questions/5186707/why-is-mongodb-so-fast

MongoDB isn't like a traditional relational database. It's noSQL or document based, it provides weak consistency guarantees, and it doesn't have to guarantee consistency like SQL.

Ievgenii
19.05.2017
09:38:36
и?

Denis
19.05.2017
09:38:59
Кто советовал юзать монгу? А если челвоеку надо ACID?

Вот и изложи сам свои "за" неё

Dmitry
19.05.2017
09:39:32
У меня две БД. MySQL и PostgreSQL. >pd. mysql-native и dbc (натив для PG)

Google
Ievgenii
19.05.2017
09:40:18
Ну если ему нужны транзакции, то да

Монго не подойдет

Но в подавляющем большенстве - они не нужны

Denis
19.05.2017
09:42:01
По объёму данных считаем или по количеству инсталляций? )

В микрозадачах чаще всего транзакции нужны. А вот если велосипед делать или хайлоад то уже нет.

Denis
19.05.2017
09:43:58
Конечно. Всякие там бухгалтерии, магазинчики и прочие.

Ievgenii
19.05.2017
09:44:17
И это микрозадачи?

Denis
19.05.2017
09:44:20
Конечно.

Ievgenii
19.05.2017
09:44:25
Как скажешь

Denis
19.05.2017
09:44:36
ПОдсчёт деталей на заводе или типа того

А вот велосипеды (очередные инет-форумы) или большие сайты - там да, там монги. Так вот чего больше - больших сайтов или микрозадачек по автоматизации предприятий?

Ievgenii
19.05.2017
09:47:00
Как скажешь

Dmitry
19.05.2017
09:48:28
так, а что мне мешает соединение поднимать внутри static this() {}

чем не синглтон будет?

Ievgenii
19.05.2017
09:52:22
Ты можешь это сделать и синглтоном

Но я бы тебе это не советовал

Denis
19.05.2017
09:52:55
Так что, какая база там?

Maxim
19.05.2017
09:55:22
ну вообще, тут напрашивается какой-то менеджер соединений, можно через ambient context сделать)

Dmitry
19.05.2017
09:56:13
static this() это аналог синглтона будет? или в чем разница его и ... ?

Страница 174 из 719