Quartz je moćna i fleksibilna biblioteka za raspoređivanje poslova u Pythonu, a Flask je lagani web okvir. Prilikom postavljanja Flask aplikacije na platformu u oblaku, integracija Quartza može donijeti mnoge prednosti, poput automatizacije zadataka, planirane obrade podataka i više. Kao dobavljač Quartz Flaska, ovdje sam da s vama podijelim kako koristiti Quartz u aplikaciji Flask postavljenoj na platformi u oblaku.
Preduvjeti
Prije nego što počnemo, provjerite jeste li instalirali sljedeće:
- Python (verzija 3.6 ili novija)
- Boca
- Quartz (APScheduler je popularna implementacija Quartza u Pythonu)
Možete instalirati Flask i APScheduler koristeći pip:
pip instalirati flask apscheduler
Postavljanje osnovne Flask aplikacije
Prvo, kreirajmo jednostavnu Flask aplikaciju. Evo osnovnog primjera:


from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Hello, World!' if __name__ == '__main__': app.run(debug=True)
Ovo je vrlo jednostavna Flask aplikacija koja vraća "Hello, World!" kada pristupite korijenskom URL-u.
Integracija Quartza u aplikaciju Flask
Sada integrirajmo APScheduler (Quartz implementacija) u našu aplikaciju Flask. Napravit ćemo jednostavan posao koji se pokreće svakih 5 sekundi i ispisuje poruku.
from flask import Flask from apscheduler.schedulers.background import BackgroundScheduler app = Flask(__name__) def job_function(): print('Ovaj posao se izvodi svakih 5 sekundi!') scheduler = BackgroundScheduler() scheduler.add_job(func=job_function, trigger='interval', seconds=5) scheduler.start() @app.route('/') def index(): return 'Hello, World!' if __name__ == '__main__': pokušaj: app.run(debug=True) osim (KeyboardInterrupt, SystemExit): scheduler.shutdown()
U ovom kodu prvo uvozimoBackgroundSchedulerizapscheduler.scheduleri.pozadina. Zatim definiramo jednostavnu funkciju poslafunkcija_poslakoji ispisuje poruku. Stvaramo instancuBackgroundScheduler, dodajte mu posao s okidačem intervala od 5 sekundi i pokrenite planer. Konačno, upravljamo gašenjem aplikacije kako bismo elegantno zaustavili planer.
Implementacija Flask aplikacije na Cloud Platformi
Dostupne su mnoge platforme u oblaku, kao što su Heroku, AWS i Google Cloud Platform. Radi jednostavnosti, uzmimo Heroku kao primjer.
Korak 1: Izradite Procfile
Procfile je tekstualna datoteka koja govori Herokuu kako pokrenuti vašu aplikaciju. Stvorite datoteku pod nazivomProfilu direktoriju vašeg projekta sa sljedećim sadržajem:
web: gunicorn app:app
Ovdje,aplikacijaodnosi se na naziv Python datoteke (ako je vaša Flask aplikacija u datoteci pod nazivomapp.py), i drugiaplikacijaodnosi se na instancu aplikacije Flask.
Korak 2: Izradite requirements.txt
Stvorite azahtjevi.txtdatoteku koja navodi sve ovisnosti vaše aplikacije. Možete ga generirati pomoću sljedeće naredbe:
pip zamrzavanje > zahtjevi.txt
Korak 3: implementirajte na Heroku
- Prvo se prijavite za Heroku račun ako već niste.
- Instalirajte Heroku CLI na vašem lokalnom računalu.
- Prijavite se na Heroku iz CLI-ja:
heroku prijava
- Napravite novu Heroku aplikaciju:
heroku stvoriti
- Pošaljite svoj kod u Heroku:
git push heroku main
- Pokrenite aplikaciju na Heroku:
heroku ps:scale web=1
Korištenje različitih vrsta kvarcnih proizvoda u primjeni
U stvarnom scenariju, možda ćete morati komunicirati s različitim proizvodima od kvarca. Na primjer,Kvarcna cijev,Kvarcna boca, iKvarcni čamacmože se koristiti u različitim laboratorijskim ili industrijskim aplikacijama integriranim s vašom Flask aplikacijom.
Recimo da je vaša Flask aplikacija za sustav upravljanja laboratorijem. Možete koristiti Quartz Flask za pohranu i rukovanje kemijskim uzorcima, Quartz Tube za razne kemijske reakcije i Quartz Boat za prijevoz uzoraka.
Ovdje je primjer kako možete ugraditi ove koncepte u svoju aplikaciju Flask. Pretpostavimo da imate krajnju točku API-ja za bilježenje upotrebe kvarcne tikvice:
from flask import Flask, jsonify, request app = Flask(__name__) @app.route('/use_quartz_flask', methods=['POST']) def use_quartz_flask(): data = request.get_json() # Ovdje možete dodati kod za snimanje korištenja Quartz Flaska # Na primjer, spremite podatke u bazu podataka return jsonify({'message': 'Korištenje Quartz Flaska uspješno zabilježeno'}) if __name__ == '__main__': app.run(debug=True)
Rukovanje pogreškama i nadzor
Kada koristite aplikaciju Quartz in Flask na platformi u oblaku, važno je ispravno postupati s pogreškama i nadzirati aplikaciju.
Rješavanje grešaka
U dijelu raspoređivača možete dodati blokove pokušaj - osim u vašim funkcijama posla za rješavanje potencijalnih pogrešaka. Na primjer:
def job_function(): try: # Vaš kod posla ovdje print('Ovaj posao se izvodi svakih 5 sekundi!') osim Iznimke kao e: print(f'Pogreška u poslu: {e}')
Praćenje
Većina platformi u oblaku nudi alate za nadzor. Na primjer, Heroku ima vlastitu nadzornu ploču na kojoj možete vidjeti zapise aplikacija, korištenje resursa i još mnogo toga. Također možete koristiti alate za nadgledanje treće strane kao što su New Relic ili Datadog za nadgledanje vaše Flask aplikacije i Quartz planera.
Skaliranje aplikacije
Kako vaša aplikacija raste, možda ćete je trebati skalirati kako biste obradili više prometa i poslova. Platforme u oblaku olakšavaju vodoravno ili okomito skaliranje vaše aplikacije.
Horizontalno skaliranje
Horizontalno skaliranje znači dodavanje više instanci vaše aplikacije. Na Herokuu možete skalirati broj web dynosa:
heroku ps:scale web=3
Ovo će povećati broj web dynosa s 1 na 3, omogućujući vašoj aplikaciji da obrađuje više istodobnih zahtjeva.
Vertikalno skaliranje
Okomito skaliranje znači povećanje resursa (CPU, memorija) svake instance. Na nekim platformama u oblaku možete nadograditi vrstu instance kako biste dobili više resursa.
Zaključak
Korištenje Quartza u aplikaciji Flask postavljenoj na platformi u oblaku može donijeti veliku fleksibilnost i automatizaciju vašim projektima. Kao dobavljač Quartz Flask, možemo vam pružiti visokokvalitetne kvarcne proizvode i tehničku podršku koja će vam pomoći da integrirate te proizvode u svoju aplikaciju.
Ako ste zainteresirani za kupnju našegKvarcna cijev,Kvarcna boca, iliKvarcni čamac, ili trebate dodatnu pomoć pri integraciji Quartza u svoju Flask aplikaciju, slobodno nas kontaktirajte za nabavu i pregovore.
Reference
- Flask dokumentacija: https://flask.palletsprojects.com/
- Dokumentacija za APScheduler: https://apscheduler.readthedocs.io/
- Dokumentacija za Heroku: https://devcenter.heroku.com/

