I have a routine with a timer that runs 24 hours a day retrieving news and feeding it into the SQLite database.

The problem is that I have another routine with a timer that fetches the information to post to the channels.

I use the following command: after retrieving the information from the database to post to the channel:
1) scon -a if ($server) && (!$istok($noticias.getNetWorkChannel( %npt.Channel[ $+ [ %nptrd ] ] ),$network,32)) && ($me ison %npt.cf [ $+ [ %nptrd ] ] ) $noticias.send.msg.tip %npt.cf [ $+ [ %nptrd ] ] %vi [ $+ [ %nptrd ] ]

The above format works, but I have an alias that feeds timers sequentially to avoid flooding and the bot crashing if it sends messages in batches. The alias is as follows:
2) noop $noticias.on.text.timer(noticiasgettab,%npt.Channel[ $+ [ %nptrd ] ],$null,%vi [ $+ [ %nptrd ] ],$null,1,%ChannelSuf [ $+ [ %nptrd ] ])
Using the above alias (2), mIRC gets lost and overwrites messages, placing messages from a channel other than its own. If I use method (1), the problem doesn't occur.

Sqlite is constantly writing and reading, but I'd like to know if there's a way to use method (2) without overwriting the messages.

Occasionally, if the channel sending the message is, for example, #help, the message sent is somehow from the #script channel, but it shouldn't be that way. I believe that the delay generated by the dll is causing one timer to overlap the other in memory, as they use the same alias.