Rovar2000
i have this cloud function it works like charm, but sometimes it weirdly timeout i even extended the timeout sequence but still to no avail.
TypeScript
import { Client, Databases, ID, Users } from 'node-appwrite';
export default async ({ req, res, log, error }) => {
const {orderId,message} = JSON.parse(req.body);
const client = new Client()
.setEndpoint(process.env.VITE_APPWRITE_ENDPOINT)
.setProject(process.env.VITE_APPWRITE_PROJECT)
.setKey(process.env.VITE_APPWRITE_API_KEY);
const databases = new Databases(client);
try {
const order = await databases.getDocument(
process.env.VITE_APPWRITE_DATABASE_ID_EKHLAS,
process.env.VITE_APPWRITE_COLLECTION_ORDERS_ID,
orderId
);
if(!order){
return res.send('Order not found');
}
const orderStatus = await databases.createDocument(
process.env.VITE_APPWRITE_DATABASE_ID_EKHLAS,
process.env.VITE_APPWRITE_COLLECTION_ORDER_STATUS_ID,
ID.unique(),
{
date: new Date(),
orderId: orderId,
status: 'REQUEST_MAINTENANCE'
}
);
if(!orderStatus){
return res.send('Order status not created');
}
const orderStatusIds = [
...order.orderStatus.map((status) => status.$id),
orderStatus.$id
]
const response = await databases.updateDocument(
process.env.VITE_APPWRITE_DATABASE_ID_EKHLAS,
process.env.VITE_APPWRITE_COLLECTION_ORDERS_ID,
orderId,
{
status: 'REQUEST_MAINTENANCE',
orderStatus: orderStatusIds,
maintenanceMessage: message ?? ""
}
);
if(!response){
return res.send('Order not updated');
}
return res.send('Order updated');
} catch (e) {
console.log(e);
return res.send(e);
}
};
this is my code.
TL;DR
Cloud function sometimes times out despite extending timeout sequence. The provided code seems valid and handles database operations. Consider optimizing the code for better performance, check the Node.js event loop for any bottlenecks. Recommended threads
- How to Avoid Double Requests in function...
I'm currently using Appwrite's `functions.createExecution` in my project. I want to avoid double requests when multiple actions (like searching or pagination) a...
- Send Email Verification With REST
I am using REST to create a user on the server side after receiving form data from the client. After the account is successfully created i wanted to send the v...
- Use different email hosts for different ...
Hello, I have 2 projects and i want to be able to set up email templates in the projects. Both projects will have different email host configurations. I see ...