rq - redis queue

20 views
Skip to first unread message

MirekZv

unread,
Dec 20, 2020, 4:01:34 PM12/20/20
to django-cs
Pouštěl jsem asynchronně nějaké bash scripty z pythoního kódu.
Pak jsem si řekl, že lépe dělat to lépe, a sáhnul po rq.

Vypadá to, že to funguje krásně (celery by jistě taky byla krásná).
Ale umím jen spustit Python funkci.

Dá se spustit příkaz shellu?
Pořád mám totiž pocit, že jsem někde četl, že pouštět lze jakékoli skripty.

Zatím můžu tak leda udělat Python funkci, kde budu mít to subprocess volání,
tentokrát synchronně....

Vladimir Linhart

unread,
Dec 20, 2020, 4:36:16 PM12/20/20
to django-cs
zavolej subrproses a dal neres. nic takovyho jako shell volani z rq si nepamatuju. 

--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu django-cs+...@googlegroups.com.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/django-cs/7b3eb799-eb09-46a8-accc-9dfb54be9a2dn%40googlegroups.com.

MirekZv

unread,
Dec 21, 2020, 3:56:32 PM12/21/20
to django-cs
@I-V:
Díky. Tak jsem to měl původně udělané.
Ale rozhodně jdu na rq. Použiju tedy subprocess. Změním ten proces na synchronní, nějak takhle (zatím neodzkoušeno):
```
process = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=False)
stdout, stderr = process.communicate()
if stderr:
    raise ....
```

Má to pro mě 2 zásadní výhody.

1) Job zařazením do fronty dostane id. Pak můžu pomocí toho id a fronta.finished_job_registry.get_job_ids() a podobně fronta.failed_job_registry.get_job_ids() jednoduše zjistit, jestli příkaz skončil a jestli dobře nebo havaroval.
To potřebuju zjišťovat z ajaxu (jde o vytváření nebo zpětné nahrávání záloh z nějakého administračního panelu).

2) Integrace django_rq do admina se mi zdá perfektní, takže tam vidím všechno, co kdy spadlo. Chybu dostanu taky do Sentry. Ještě to nemám, ale snad se mi podaří přenést nějakým jednotným způsobem i stderr z bash skriptu do rq panelu i do Sentry.

A prostě celé mi to přijde takové robustnější  a systematičtější řešení.

Dne neděle 20. prosince 2020 v 22:36:16 UTC+1 uživatel Ing. Vladimir napsal:
Reply all
Reply to author
Forward
0 new messages