Come eseguire attività posticipate nel backend [chiuso]

-3

In realtà il problema è molto comune. Lasciatemi descrivere questo con l'esempio.
Immagina di avere un servizio web in cui gli utenti si registrano e pagano per uno stato d'oro. C'è la data di scadenza. La domanda è come rimuovere lo stato dell'oro in tempo?
Vedo almeno due soluzioni:

  1. Scrivi un demone che controlla gli stati degli utenti e l'ora corrente ed esegue alcune azioni
  2. Usa cron come demone e fai lo stesso

Ma credo che ci siano altri approcci. Dal modo in cui il linguaggio è stato scritto dal sistema è Python, ma non credo che questo sia davvero importante.

    
posta Deck 17.10.2014 - 23:36
fonte

2 risposte

2

Supponendo che tu stia utilizzando un database per archiviare le informazioni dell'account, filtrare una ricerca su "account_expiry > = get_date ()" sul database (ad esempio in SQL) è un'operazione trascurabile.

Se non utilizzi un database per le informazioni sull'account, il tuo approccio potrebbe variare in base a ciò che stai utilizzando.

Per rispondere alla tua domanda intitolata, come esegui un'attività differita su un back-end in python, guarda Celery

    
risposta data 18.10.2014 - 00:21
fonte
1

Credo che ci siano due approcci di base:

  • controlla lo stato corrente ogni volta che è necessario
  • eseguire un processo a intervalli regolari per eseguire il controllo

Il problema con il primo metodo è che può richiedere un uso intensivo delle risorse, mentre il problema con il secondo è che potrebbe esserci una finestra in cui l'utente non dovrebbe avere lo "stato d'oro", ma lo fa.

Per la seconda opzione, se si utilizza cron o un deamon personalizzato o un metodo temporizzato personalizzato nel programma stesso non fa alcuna differenza.

    
risposta data 18.10.2014 - 00:00
fonte

Leggi altre domande sui tag