Как лучше всего реализовать простой катастрофический отказ / сообщение об ошибке?

Я попробовал вышеуказанное решение, но я счел его непригодным для больших объемов данных. Затем я обнаружил функцию потока:

MongoClient.connect("...", function(err, db){
    var c = db.collection('yourCollection');
    var s = c.find({/* your query */}).stream();
    s.on('data', function(doc){
        c.update({_id: doc._id}, {$set: {name : doc.firstName + ' ' + doc.lastName}}, function(err, result) { /* result == true? */} }
    });
    s.on('end', function(){
        // stream can end before all your updates do if you have a lot
    })
})
8
задан Azat Ibrakov 23 December 2018 в 10:21
поделиться

6 ответов

Веб-сервис является лучшим способом, но существуют некоторые протесты:

  1. Необходимо всегда спрашивать пользователя, если нормально отправлять ошибочную информацию об обратной связи.
  2. Вы должны быть готовы перестать работать корректно, если существуют сетевые ошибки. Не позволяйте отказу сообщить, что катастрофический отказ препятствует восстановлению!
  3. Необходимо избежать включая пользователя, определяющего или уязвимую информацию, если пользователь не знает (см. № 1), и необходимо или использовать SSL или иначе защитить его. Некоторая юрисдикция налагает трудности на Вас, что Вы не могли бы хотеть иметь дело с, поэтому лучше просто не сохранять такую информацию.
  4. Как любой веб-сервис, удостоверьтесь, что Ваш сервис не является годным для использования злодеями.
5
ответ дан 5 December 2019 в 17:43
поделиться

Я не могу думать о способе сделать это без включения имени пользователя и пароля для smtp сервера в приложении...

Вам только нужны имя пользователя и пароль для аутентификации себя к smarthost. Вам не нужен он для отправки почты непосредственно, Вам нужен он для отправки почты через реле, например, почтового сервера ISP. Совершенно возможно послать электронное письмо без аутентификации - вот почему, спам настолько трудно остановить.

Однако некоторый исходящий трафик блока ISPs на порте 25, таким образом, самой устойчивой альтернативой является POST HTTP, который вряд ли будет заблокирован чем-либо. Обязательно выберите URL, которым Вы не будете чувствовать себя ограниченными позже, или еще лучше, иметь приложение, периодически проверяют на обновления, поэтому если Вы решаете изменить домены или что-то, можно продвинуть обновление заранее.

Безопасность не является действительно проблемой. Можно довольно легко отбросить данные спама, таким образом, все, что действительно касается Вас, - перешел ли кто-то к проблеме создать фальшивку tracebacks для питания с Вами, и это - очень маловероятная ситуация.

Что касается полезной нагрузки, PyCrash может помочь Вам с этим.

3
ответ дан 5 December 2019 в 17:43
поделиться
1
ответ дан 5 December 2019 в 17:43
поделиться

Веб-хит является способом пойти, но удостоверяться Вы выбираете хороший URL - Ваше приложение будет поражать его в течение последующих лет.

1
ответ дан 5 December 2019 в 17:43
поделиться

Используете ли Вы SMTP или HTTP для отправки данных, у Вас должно быть имя пользователя/пароль в приложении для предотвращения просто любого от отправки случайных данных Вам.

Имея это в виду, я подозреваю, что было бы легче использовать SMTP, а не HTTP для отправки данных.

0
ответ дан 5 December 2019 в 17:43
поделиться

Некоторый простой веб-сервис был бы достаточен. Необходимо было бы рассмотреть безопасность так не только, любой мог выполнить запросы к сервису..

В более крупном масштабе мы рассмотрели систему обмена сообщениями JMS. Поместите сериализованный объект данных, содержащих сообщение traceback/error в очередь, и используйте его каждый x минуты, генерировав отчеты/предупреждения от тех данных.

0
ответ дан 5 December 2019 в 17:43
поделиться
Другие вопросы по тегам:

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