I have an Qaction A that receives changes from a table and triggers Qaction B. Qaction A writes to an invisible string "buffer" param that Qaction B reads from and deletes. The problem is that the table may have multiple changes. So as Qaction A is triggered multiple times it also triggers Qaction B multiple times. So depending on when Qaction B is scheduled to run the buffer may not be completely filled with the changes. Is there any way to tell how many times Qaction A is scheduled to run, and then run Qaction B when its finished? Can I see how many changes are in the table? Or is this just a bad pattern all together?
Is this table an SNMP table and is the QAction A triggering on this SNMP table?
Does the QAction A have the row="true" attribute specified? If that is the case then the QAction will go off multiple times when multiple rows are changing in the table. Remove the row="true" to have only one trigger when things are changing in the table.
To avoid having to work with a buffer parameter can be done by importing (precompiled) QAction B into QAction A. This way QAction A can directly use the methods of QAction B and pass the "buffer" value to the B method instead of having to go via a parameter that would have a more costly inter-process call.
If the code of QAction B is not shared with other logic that would be triggering this QAction then this code might as well be directly added to QAction A.