джанго/сельдерей: Лучшие практики по выполнению задач на 150k объектов Джанго?

Я должен выполнять задачи примерно на 150 тыс. объектов Джанго. Какой лучший способ сделать это? Я использую Django ORM в качестве Брокера. Бэкэнд базы данных является MySQL и подавляется и погибает во время task.delay () всех задач. В связи с этим я также хотел начать это с подачи формы, но полученный запрос дал очень длительное время ответа, которое истекло.

-121--1247530- Является ли подключение к базе данных в этом классе «повторно используемым»? Я новичок в asp.net, так что это может быть действительно основной вопрос, но я не могу понять это. Я нашел немного кода в интернете, который подключается к базе данных. И я создал пространство имен и некоторые классы, чтобы...

Я новичок в asp.net, так что это может быть действительно основной вопрос, но я не могу понять это.

Я нашел немного кода в Интернете, который подключается к базе данных. И я создал пространство имен и некоторые классы, чтобы использовать один и тот же код в разных проектах.

Код и мой класс следующие:

namespace databaseFunctions
{
    public class databaseConnection
    {
private static string databaseConnectionString()
        {
            return "DRIVER={MySQL ODBC 5.1 Driver}; ........";
        }

        public static DataTable getFromDatabase(string SQL)
        {
            DataTable rt = new DataTable();
            DataSet ds = new DataSet();
            OdbcDataAdapter da = new OdbcDataAdapter();
            OdbcConnection con = new OdbcConnection(databaseConnectionString());
            OdbcCommand cmd = new OdbcCommand(SQL, con);
            da.SelectCommand = cmd;
            da.Fill(ds);
            try
            {
                rt = ds.Tables[0];
            }
            catch
            {   
                rt = null;
            }
            return rt;
        }

        public static Boolean insertIntoDatabase(string SQL)
        {

            OdbcDataAdapter da = new OdbcDataAdapter();
            OdbcConnection con = new OdbcConnection(databaseConnectionString());
            OdbcCommand cmd = new OdbcCommand(SQL, con);
            con.Open();
            try
            {
                cmd.ExecuteNonQuery();
                return true;
            }
            catch
            {
                return false;
            }

        }

}

Нет проблем с получением данных из базы данных или вставкой данных в некоторые базы данных. Но. когда я пытаюсь получить last_insert_id () из базы данных mysql. Я получаю только ноль.

Вот почему я думаю, что этот фрагмент кода, который я создал и скопировал из Интернета, создает новое соединение для каждого вызова "get(SQL) "

Есть ли кто-нибудь, кто мог бы помочь мне с исправлением этого класса get() поддерживать связь с базой данных в рабочем состоянии до тех пор, пока я не скажу программе отказаться от соединения?

Я полагаю, что это «новое соединение OdstartConnection» должно быть изменено? Можно ли проверить, есть ли уже соединение? Я делал это сотни раз в классической заднице, но теперь, с занятиями и прочее. Я полностью потерялась.

7
задан JohnFx 21 September 2011 в 00:46
поделиться