|
I am creating an email service but the email service needs to be very scalable with almost nodowntime as it will be sending thousands of email every hour after checking the user from database.
Is there any architecture for creating such kind of services.
|
|
|
|
|
You are sending thousands of emails per hour to the same user!?!
Please, tell me how I stay off your mailing list!
Did you know:
That by counting the rings on a tree trunk, you can tell how many other trees it has slept with.
|
|
|
|
|
No we are not sending to one user but many users.
|
|
|
|
|
Hey
Im having a problem using the sockets asynchronous BeginSend method. My server application is sending a large amount of data in small chunks and therefore I am calling BeginSend many times in a short period of time. I believe that the recieving application cant handle the speed and therefore the sender is queuing the calls until they can be sent. This means that memory is constantly increasing on the sender application. I think that I need to implement some sort of flow control to stop calling BeginSend when there are to many calls pending. Can anyone help me out or point me to some literature on this issue?
Thanks
|
|
|
|
|
This is the pattern I'm familiar with (in pseudocode):
Socket socket;
Queue<Data> pendingData;
bool sending;
public void SendAsync (Data data)
{
if (sending)
{
pendingData.Add(data);
}
else
{
sending = true;
socket.BeginSend(data, new Callback(SendCallback));
}
}
private void SendCallback ()
{
socket.EndSend();
if (pendingData.Count > 0)
{
socket.BeginSend(pendingData.DequeueReasonableAmountOfData(), new Callback(SendCallback));
}
else
{
sending = false;
}
}
This maintains only one outstanding asynchronous send operation at a time and the amount of data queued to be sent can easily be handled by user code. This is useful in case the queued data needs to be resent if the client disconnects/reconnects, or if you want to put a limit on how much data to queue to send or perhaps prioritize the queued data in some way.
Of course another important part would be to make sure the receiver is receiving in such a way that parsing the data isn't blocking the socket from immediately receiving the next packet being sent.
|
|
|
|
|
Thanks this is exactly what I needed.
|
|
|
|
|
You're welcome
|
|
|
|
|
Hi. I noticed that when creating a localized application (by separating languages in interface) compiler creates subfolders for those languages and places the DLLs in them. I am trying to find a way to implement these DLLs in the Application assembly and avoid the need of subfolders for these DLLs,
Please advice.
Thanks.
|
|
|
|
|
The reason that it places them in subfolders is so that the runtime can pick the relevant one up - basically, the name of the folder follows a special naming convention which allows the localisation code to pick up a specific culture if it's available, drop back to the language if it's not, and then fall back to the default language if that's not available.
Trying to circumvent this means that you will have to code the infrastructure yourself. What business reason do you have for wanting to do this?
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys | Onyx
|
|
|
|
|
Thanks pete. I Realize that. I just wonder if there is a way to implement it in one assembly.
|
|
|
|
|
Hi all,
I have an application that was written in C# (VS 2005). The applications reads properties of ms office documents and for that purpose it uses the dsofile.dll (version 2.1) library from Microsoft. Now I'm trying to port my app. to VS 2008. But the problem is that when I try to add a reference to dsofile I get an error stating that 'Can't add a reference to the file. Please verify that the file is a valid assembly or a COM component.' Can someone please help me with it..?
Regards
Ankit.
===========================
It's done people. The problem was due to file permissions. I downloaded another copy from Microsoft and replaced the original file, and it's working fine now.
-- Modified Monday, June 14, 2010 5:49 AM
modified on Monday, June 14, 2010 5:54 AM
|
|
|
|
|
Hi all,
I need to know how to either prevent anyone from open an excel file when it's open by my application and written to or only let the file being opened write-protected during the write session.
Gurpreet
|
|
|
|
|
You might want to look at sharing and the MultiUserEditing[^] flag.
Maybe this[^] can also help.
My signature "sucks" today
|
|
|
|
|
I need to support Office 2005 as well so MultiUserEditing flag will not help. also MultiUserEditing is readonly property so I cannot set it
Also, protection property will not help in this case
Gurpreet
|
|
|
|
|
If you are opening the excel file using a filestream you could use the fileshare parameter to prevent any other users from reading the file.
|
|
|
|
|
No I am not using file stream. This is how I open and use
_objAppln = new Excel.Application(); // To initialize excel file
//_objAppln.Visible = true;
if (_objAppln != null)
{
_objWorkBooks = _objAppln.Workbooks;
_objWorkBook = _objWorkBooks.Add(Type.Missing); // To add workbook with sheets in excel file
_objWorkSheet = (Excel.Worksheet)_objAppln.ActiveSheet; // To get the current active sheet in excel file
....
Excel.Range objRange = _objWorkSheet.get_Range(columnName + _currentRowIndex, LastColumnName + _currentRowIndex);
objRange.Value2 = GroupName;
...
_objWorkBook.SaveAs(_fileName,
Excel.XlFileFormat.xlWorkbookNormal, Type.Missing, Type.Missing, false, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
Gurpreet
|
|
|
|
|
Potentially you could change the read only attribute on the file as soon as you open it, and manage it that way (i.e. convert it back to read/write for the file save). This isn't perfect, though, because it would be in line for a race condition occurring.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys | Onyx
|
|
|
|
|
I need to add rows to that sheet. How can I change it to readonly?
Gurpreet
|
|
|
|
|
As soon as you open the file, change the readonly file attribute to true. Add your rows, and change the attribute to false - save - then reset to true.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys | Onyx
|
|
|
|
|
Hi,
I'm using the AODL tooolkit to create spreadsheets.
The problem is, since AODL is part of open office, all the file come out as .ods files.
I'm looking for one of the following solutions:
1. A way to export files to .xls using AODL (i've searched for way of doing this, and found nothing)
2. Another toolkit, that doesn't require the installation of MS-office, and can build spreadsheets using C#.
3. Whatever other solution you think might help me...
Thank,
SummerBulb
|
|
|
|
|
private void dgvFactorSell_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
if (dgvFactorSell.Rows[e.RowIndex].Cells["CStoreCode"].EditedFormattedValue != null && dgvFactorSell.Rows[e.RowIndex].Cells["CStoreCode"].EditedFormattedValue.ToString() != "")
{
e.Cancel = true;
}}
now when i am in this cell and if it doesnt content any data and if i click the close button of form it doesnt do any thing (i mean it doest close the form and remain in the same cell)
ANS :http://s.codeproject.com/script/Forums/Images/smiley_smile.gif
I My Self Solved it !
bool FlagIsClose = false;
const int HTCLOSE = 0x14;
const int WM_NCLBUTTONDOWN = 0xA1;
protected override void DefWndProc(ref Message m)
{
if (m.Msg == WM_NCLBUTTONDOWN)
{
if (m.WParam.ToInt32() == HTCLOSE)
{
FlagIsClose = true;
}
}
base.DefWndProc(ref m);
}
modified on Monday, June 14, 2010 8:46 AM
|
|
|
|
|
Im Creating an RDL report Using VS 2005. It accepts a parameter which i wish to pass as an XML file.
<root>
<emp>
<emp detail ID ="1" name="ritu"/>
<emp detail ID ="2" name ="rishi"/>
</emp>
</root>
How can i filter my report data based on the ID (say 1)
|
|
|
|
|
Hi All,
I have two website 1. ABC 2. Xyz.
And i want to transfer data from one site (i.e ABC site) to another site (Xyz site).
Example:
ABC site have data (name , surname) => Pass this data to => Xyz site.
so, How can i pass this data.. Any Idea??
Thanks & Regards,
Priyanka
|
|
|
|
|
You can use HTTP post for passing the data one site to another. You just need to do is write a simple function in your app which will pass the data from your app internally. A simple code snippets is given below, I hope this might be helpful to you.
strPage = "www.codeproject.com/Get/?id=1234 ......... "
Function PostDatas(ByVal strPage As String) As String
Try
Dim oReq As System.Net.HttpWebRequest
Dim oResp As System.Net.HttpWebResponse
oReq = System.Net.HttpWebRequest.Create(strPage)
oResp = oReq.GetResponse
Dim sr As New StreamReader(oResp.GetResponseStream)
Return sr.ReadToEnd()
Catch
-- Handle exception
End Try
Thanks
Md. Marufuzzaman
I will not say I have failed 1000 times; I will say that I have discovered 1000 ways that can cause failure – Thomas Edison.
|
|
|
|
|
You might want to consider web services if you want to set up a communication channel between two web sites.
My signature "sucks" today
|
|
|
|