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
- Selfhosted Github App installation
I've followed this guide: https://appwrite.io/docs/advanced/self-hosting/configuration/version-control to connect GitHub to my self-hosted Appwrite instance (1....
- User ID case sensitivity
I see that through REST (and SDK as well), getting a user is not case sensitive. And even though documentation does not clearly state that it is, the wording "V...
- Any way to temporarily bypass the email ...
Hey guys, any way to bypass the email verification to use the accounts again? i need to recover some projects that due to recent changes have been stopped, and ...