Вход в распараллеливает в приложении направляющих

Attributes - это значение Flags , поэтому вам нужно проверить, содержит ли оно FileAttributes.Hidden , используя побитовое сравнение, например:

if ((dir.Attributes & FileAttributes.Hidden) == 0)

9
задан EmFi 20 October 2009 в 17:58
поделиться

2 ответа

Я чесал затылок с той же проблемой. Для меня ответ был следующим:

Thread.new do
  begin
    ...
  ensure
    Rails.logger.flush
  end
end
5
ответ дан 3 November 2019 в 07:13
поделиться

Я понимаю вашу озабоченность по поводу фоновых задач, но помните, что отключение потоков в Rails может быть пугающим занятием. Фреймворк практически не предусматривает многопоточность, что означает, что вы должны рассматривать все объекты Rails как небезопасные для потоков. Даже соединение с базой данных становится сложным.

Что касается регистратора: стандартный класс регистратора Ruby должен быть потокобезопасным. Но даже если Rails использует это, вы не можете контролировать, что приложение Rails с ним делает. Например, механизм тестирования будет «заглушать» регистратор, переключая уровни.

Я бы избегал использования регистратора rails. Если вы хотите использовать потоки, создайте новый регистратор внутри потока, который регистрирует сообщения для этой операции. Если вы не хотите создавать новый журнал для каждого потока, вы также можете попытаться создать один потокобезопасный объект ведения журнала во время выполнения, к которому каждый из потоков может получить доступ.

На вашем месте я бы, вероятно, еще раз взглянул на решения фоновых заданий. В то время как DRb выглядит кошмаром, «bj» кажется приятным и легким; хотя потребовалась некоторая работа, чтобы запустить его с JRuby. Также существует альтернатива использованию планировщика Java от JRuby, см. http://www.jkraemer.net/2008/1/12/job-scheduling-with-jruby-and-rails

0
ответ дан 3 November 2019 в 07:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: