django-river | Django workflow library that supports on the fly changes | BPM library
kandi X-RAY | django-river Summary
kandi X-RAY | django-river Summary
Django workflow library that supports on the fly changes ⛵
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of django-river
django-river Key Features
django-river Examples and Code Snippets
Community Discussions
Trending Discussions on django-river
QUESTION
We have a Django application that uses Django-river for workflow management. For performance improvement, we had to use bulk_create. We need to insert data into a couple of tables and several rows in each. Initially, we were using the normal .save() method and the workflow was working as expected (as the post save() signals were creating properly). But once we moved to the bulk_create, the performance was improved from minutes to seconds. But the Django_river stopped working and there was no default post save signals. We had to implement the signals based on the documentation available.
...ANSWER
Answered 2021-Oct-09 at 23:11As others have mentioned in the comments, the problem is that the functions that are getting called via the post_save
are taking a long time. (Remember that signals are not async!! - this is a common misconception).
I'm not familiar with django-river
but taking a quick look at the functions that will get called post-save (see here and here) we can see that they involve additional calls to the database.
Whilst you save a lot of individual db hits by using bulk_create
you are still doing calling the database again multiple times for each post_save signal.
In short. Not much!! For the vast majority of django requests, the slow part will be calling the database. This is why we try and minimise the number of calls to the db (using things like bulk_create
).
Reading through the first few paragraphs of django-river
the whole idea is to move things that would normally be in code to the database. The big advantage here is that you don't need to re-write code and re-deploy so often. But the disadvantage is that you're inevitably going to have to refer to the database more, which is going to slow things down. This will be fine for some use-cases, but not all.
There are two things I can think of which might help:
- Does all of this currently happen as part of the request/response cycle. And if it is, does it need to be? If the answers to these two questions are 'yes' and 'no' respectively, then you could move this work to a separate task queue. This will still be slow, but at least it won't slow down your site.
- Depending on exactly what your workflows are and the nature of the data you are creating, it might be the case that you can do everything that the
post_save
signals are doing in your own function, and do it more efficiently. But this will definitely depend upon your data, and your app, and will move away from the philosophy ofdjango-river
.
QUESTION
i am trying to convert my existing project to the DRF . However im facing the error of :
...ANSWER
Answered 2020-May-20 at 11:41You can get this error, because your get_transition_approval
method returns queryset TransitionApproval
.Querysets couldn't serialize to json directly. You must return serialized data from this method. You can create another serializer and serialize your data with this serializer like that:
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install django-river
You can use django-river like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page