Comments (5)
Spidermon uses scrapy.mail.EmailSender
to send emails using SMTP protocol. Such class returns a Deferred object that is never awaited and caused the error logs that you are raising. To fix this we either need to:
- Block until the deferred object has been processed
- Implement the SMTP mailing using an alternative library
- Allow to execute async code on actions and/or return deferreds
cc. @Gallaecio @wRAR @rennerocha
from spidermon.
Rebuild spidermon to support async code would be a Spidermon 2.0 change. I don't think we are considering this in short term 😄
Using blocking Python stlib smtplib
for that looks fine to me, and not complicated to do.
from spidermon.
Seems related to scrapy/scrapy#3478
from spidermon.
The analysis makes sense. Blocking until the deferred finishes should be fine if the code allows doing it easily.
from spidermon.
It doesn't look trivial to block on a deferred or rebuild spidermon to support async code, so we should change the current action to use some other smtp library like https://docs.python.org/3/library/smtplib.html instead.
from spidermon.
Related Issues (20)
- Support different severity levels for Spidermon alerts HOT 2
- Error when using custom job tags action class HOT 1
- Create ReadTheDocs configuration build file
- Field coverage always 100% HOT 5
- spidermon.utils.zyte.client uses only project setting module for settings.
- Support restricting the coverage monitor fields HOT 4
- Unable to validate date and date-time with jsonschema HOT 2
- CI is broken in master HOT 1
- Add handling for datetime aware start time in PeriodicExecutionTimeMonitor HOT 1
- Change format of content of _validation field HOT 1
- Periodic item count monitor crashes if it runs before item_scraped_count exists in stats
- Field names containing "_items" crash field coverage
- Default email template fails with latest `scrapinghub` client version
- `SPIDERMON_MONITOR_SKIPPING_RULES` isn't documented
- feature: Allow to filter jobs in ZyteJobsComparisonMonitor by close_reason HOT 1
- feature: Allow to filter jobs in ZyteJobsComparisonMonitor by spider arguments
- TypeError: can't subtract offset-naive and offset-aware datetimes HOT 2
- issue: Wrong previous jobs count in ZyteJobsComparisonMonitor
- Scrapinghub jobs.list method called with incorrect filter parameter
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spidermon.