Вы можете использовать модификатор $position
для $push
для определенного индекса
db.ArrayTest.update(
{ _id: "test" },
{
$push: {
TestArr: {
$each : [[6,3]],
$position: 1
}
}
}
)
Из вашего описания текущей реализации вы, похоже, используете Thread.Sleep для ожидания в течение 2 часов, верно? Если это так, ваша программа действительно плохо закодирована.
Не спать. Поскольку в течение 2 часов ваша программа не может ничего сделать, она не может проверить, обновлен ли список заданий.
Используйте таймеры. В частности, используйте класс System.Timers.Timer.
Используйте таймер для проверки списка заданий, проверяя его раз в секунду, и все в порядке. Используйте больший интервал, например 2 или 5 секунд, если вы обнаружите проблему с производительностью в таймере.
Для работы, которая должна быть выполнена через 2 часа, просто установите таймер, который срабатывает через 2 часа, забудьте о нем и удалите работу из списка. Если вы найдете другую работу, которая должна быть выполнена через 3 часа, снова установите другой таймер.