Я только что нанял в качестве младшего разработчика Python в компании. Здесь они хотят передать тяжелые задачи (массовая рассылка, импорт в Excel, экспорт PDF) с сервера PHP на сервер django (сельдерей), чтобы уменьшить рабочую нагрузку. На моем компьютере мне удалось запустить их оба локально (отдельно).
Мой вопрос заключается в том, как лучше всего передать данные или вызвать функцию на сервере Django с сервера PHP
Например, рассмотрите код ниже: some_shit.php
public function actionExportPdf()
{
$mPDF = Yii::app()->ePdf->mpdf();
$model = new Gulfuniversityapplication('search');
$dbcriteria = Yii::app()->session['criteria'];
$model->setDbCriteria($dbcriteria);
$row = Yii::app()->db->createCommand("select field_data from modules where table_name='".$model->tableName()."'")->queryRow();
$filteredData = CJSON::decode($row['field_data']);
//$filteredData = $data[$model->tableName()];
$stylesheet = file_get_contents(getcwd().'/path/to/core/assets/css/social.css');
$mPDF->WriteHTML($stylesheet, 1);
$mPDF->WriteHTML($this->renderPartial('_exportPdf',array(
'model' => $model,
'data' => $filteredData,
), true));
$mPDF->Output();
}
Это их PHP, я понятия не имею, что в нем.
Вот мой Django код сельдерея tasks.py
@shared_task
def export_task(arg1,arg2):
my_cursor = my_db.cursor()
my_cursor.execute("SELECT arg1 FROM arg2")
out =[]
for i in my_cursor.fetchall():
out.append(i)
my_cursor.execute("DESCRIBE arg2")
column = []
for i in my_cursor.fetchall():
column.append(i[0])
df = pd.DataFrame(data=out,columns=column)
writer = pd.ExcelWriter('output.xlsx')
df.to_excel(writer,'Sheet1')
writer.save()
Это мой первый вопрос здесь, спасибо заранее.
Я думал о вызовах POST API из PHP
если это единственное решение, объясните это для YII Framework
Задача ещё не решена.
Других решений пока нет …